home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / gas / gassrc02.zoo / m68k-opcode.h < prev    next >
C/C++ Source or Header  |  1992-04-27  |  98KB  |  1,903 lines

  1. /*
  2.  * HISTORY
  3.  * 09-Aug-91  Shin Iwamoto (shin) at CANON Inc.
  4.  *    Added the following floating-point instruction on mc68040:
  5.  *        F[SD]ADD, F[SD]SUB, F[SD]MUL, F[SD]DIV, F[SD]ABS,
  6.  *        F[SD]NEG, F[SD]SQRT, F[SD]MOVE
  7.  *    Removed fsubx with one register.
  8.  * 07-Aug-91  Shin Iwamoto (shin) at CANON Inc.
  9.  *    Added definitions for indirectly supported floating-point
  10.  *    instructions on mc68040.
  11.  * 23-Jan-91  K. Chyo (chyo) at DPS of CANON Inc.
  12.  *    Enhanced for mc68040 support.
  13.  */
  14.  
  15. /* Opcode table for m68000/m68020 and m68881.
  16.    Copyright (C) 1989, Free Software Foundation.
  17.  
  18. This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler.
  19.  
  20. Both GDB and GAS are free software; you can redistribute and/or modify
  21. it under the terms of the GNU General Public License as published by
  22. the Free Software Foundation; either version 1, or (at your option)
  23. any later version.
  24.  
  25. GDB and GAS are distributed in the hope that it will be useful,
  26. but WITHOUT ANY WARRANTY; without even the implied warranty of
  27. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  28. GNU General Public License for more details.
  29.  
  30. You should have received a copy of the GNU General Public License
  31. along with GDB or GAS; see the file COPYING.  If not, write to
  32. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  33.    
  34. struct m68k_opcode
  35. {
  36.   char *name;
  37.   unsigned long opcode;
  38.   unsigned long  match;
  39.   char *args;
  40. };
  41.  
  42. /* We store four bytes of opcode for all opcodes because that
  43.    is the most any of them need.  The actual length of an instruction
  44.    is always at least 2 bytes, and is as much longer as necessary to
  45.    hold the operands it has.
  46.  
  47.    The match component is a mask saying which bits must match
  48.    particular opcode in order for an instruction to be an instance
  49.    of that opcode.
  50.  
  51.    The args component is a string containing two characters
  52.    for each operand of the instruction.  The first specifies
  53.    the kind of operand; the second, the place it is stored.  */
  54.  
  55. /* Kinds of operands:
  56.    D  data register only.  Stored as 3 bits.
  57.    A  address register only.  Stored as 3 bits.
  58.    R  either kind of register.  Stored as 4 bits.
  59.    F  floating point coprocessor register only.   Stored as 3 bits.
  60.    O  an offset (or width): immediate data 0-31 or data register.
  61.       Stored as 6 bits in special format for BF... insns.
  62.    +  autoincrement only.  Stored as 3 bits (number of the address register).
  63.    -  autodecrement only.  Stored as 3 bits (number of the address register).
  64.    Q  quick immediate data.  Stored as 3 bits.
  65.       This matches an immediate operand only when value is in range 1 .. 8.
  66.    M  moveq immediate data.  Stored as 8 bits.
  67.       This matches an immediate operand only when value is in range -128..127
  68.    T  trap vector immediate data.  Stored as 4 bits.
  69.  
  70.    k  K-factor for fmove.p instruction.   Stored as a 7-bit constant or
  71.       a three bit register offset, depending on the field type.
  72.  
  73.    #  immediate data.  Stored in special places (b, w or l)
  74.       which say how many bits to store.
  75.    ^  immediate data for floating point instructions.   Special places
  76.       are offset by 2 bytes from '#'...
  77.    B  pc-relative address, converted to an offset
  78.       that is treated as immediate data.
  79.    d  displacement and register.  Stores the register as 3 bits
  80.       and stores the displacement in the entire second word.
  81.  
  82.    C  the CCR.  No need to store it; this is just for filtering validity.
  83.    S  the SR.  No need to store, just as with CCR.
  84.    U  the USP.  No need to store, just as with CCR.
  85.  
  86.    I  Coprocessor ID.   Not printed if 1.   The Coprocessor ID is always
  87.       extracted from the 'd' field of word one, which means that an extended
  88.       coprocessor opcode can be skipped using the 'i' place, if needed.
  89.  
  90.    s  System Control register for the floating point coprocessor.
  91.    S  List of system control registers for floating point coprocessor.
  92.  
  93.    J  Misc register for movec instruction, stored in 'j' format.
  94.     Possible values:
  95.     000    SFC    Source Function Code reg
  96.     001    DFC    Data Function Code reg
  97.     002    CACR    Cache Control Register
  98.     800    USP    User Stack Pointer
  99.     801    VBR    Vector Base reg
  100.     802    CAAR    Cache Address Register
  101.     803    MSP    Master Stack Pointer
  102.     804    ISP    Interrupt Stack Pointer
  103. #ifdef m68040
  104.     003    MMU Translation Control reg
  105.     004    Instruction Transparant Tlanslation reg 0
  106.     005    Instruction Transparant Tlanslation reg 1
  107.     006    Data Transparant Tlanslation reg 0
  108.     007    Data Transparant Tlanslation reg 1
  109.     805    MMU Status reg
  110.     806    User Root Pointer
  111.     807    Supervisor Root Pointer
  112. #endif m68040
  113.  
  114.     L  Register list of the type d0-d7/a0-a7 etc.
  115.        (New!  Improved!  Can also hold fp0-fp7, as well!)
  116.        The assembler tries to see if the registers match the insn by
  117.        looking at where the insn wants them stored.
  118.  
  119.     l  Register list like L, but with all the bits reversed.
  120.        Used for going the other way. . .
  121.  
  122.  They are all stored as 6 bits using an address mode and a register number;
  123.  they differ in which addressing modes they match.
  124.  
  125.    *  all                    (modes 0-6,7.*)
  126.    ~  alterable memory                (modes 2-6,7.0,7.1)(not 0,1,7.~)
  127.    %  alterable                    (modes 0-6,7.0,7.1)(not 7.~)
  128.    ;  data                    (modes 0,2-6,7.*)(not 1)
  129.    @  data, but not immediate            (modes 0,2-6,7.? ? ?)(not 1,7.?)  This may really be ;, the 68020 book says it is
  130.    !  control                    (modes 2,5,6,7.*-)(not 0,1,3,4,7.4)
  131.    &  alterable control                (modes 2,5,6,7.0,7.1)(not 0,1,7.? ? ?)
  132.    $  alterable data                (modes 0,2-6,7.0,7.1)(not 1,7.~)
  133.    ?  alterable control, or data register    (modes 0,2,5,6,7.0,7.1)(not 1,3,4,7.~)
  134.    /  control, or data register            (modes 0,2,5,6,7.0,7.1,7.2,7.3)(not 1,3,4,7.4)
  135. */
  136.  
  137. #ifdef m68040
  138. /*
  139.    a  address register indirect only.  Stored as 3 bits.
  140.    c  cache immediate data.  Stored as 2 bits.
  141. */
  142. #endif m68040
  143. /* JF: for the 68851 */
  144. /*
  145.    I didn't use much imagination in choosing the 
  146.    following codes, so many of them aren't very
  147.    mnemonic. -rab
  148.  
  149.    P  pmmu register
  150.     Possible values:
  151.     000    TC    Translation Control reg
  152.     100    CAL    Current Access Level
  153.     101    VAL    Validate Access Level
  154.     110    SCC    Stack Change Control
  155.     111    AC    Access Control
  156.  
  157.    W  wide pmmu registers
  158.     Possible values:
  159.     001    DRP    Dma Root Pointer
  160.     010    SRP    Supervisor Root Pointer
  161.     011    CRP    Cpu Root Pointer
  162.  
  163.    f    function code register
  164.     0    SFC
  165.     1    DFC
  166.  
  167.    V    VAL register only
  168.  
  169.    X    BADx, BACx
  170.     100    BAD    Breakpoint Acknowledge Data
  171.     101    BAC    Breakpoint Acknowledge Control
  172.  
  173.    Y    PSR
  174.    Z    PCSR
  175.  
  176.    |    memory         (modes 2-6, 7.*)
  177.  
  178. */
  179.  
  180. /* Places to put an operand, for non-general operands:
  181.    s  source, low bits of first word.
  182.    d  dest, shifted 9 in first word
  183.    1  second word, shifted 12
  184.    2  second word, shifted 6
  185.    3  second word, shifted 0
  186.    4  third word, shifted 12
  187.    5  third word, shifted 6
  188.    6  third word, shifted 0
  189.    7  second word, shifted 7
  190.    8  second word, shifted 10
  191.    D  store in both place 1 and place 3; for divul and divsl.
  192.    b  second word, low byte
  193.    w  second word (entire)
  194.    l  second and third word (entire)
  195.    g  branch offset for bra and similar instructions.
  196.       The place to store depends on the magnitude of offset.
  197.    t  store in both place 7 and place 8; for floating point operations
  198.    c  branch offset for cpBcc operations.
  199.       The place to store is word two if bit six of word one is zero,
  200.       and words two and three if bit six of word one is one.
  201.    i  Increment by two, to skip over coprocessor extended operands.   Only
  202.       works with the 'I' format.
  203.    k  Dynamic K-factor field.   Bits 6-4 of word 2, used as a register number.
  204.       Also used for dynamic fmovem instruction.
  205.    C  floating point coprocessor constant - 7 bits.  Also used for static
  206.       K-factors...
  207.    j  Movec register #, stored in 12 low bits of second word.
  208.  
  209.  Places to put operand, for general operands:
  210.    d  destination, shifted 6 bits in first word
  211.    b  source, at low bit of first word, and immediate uses one byte
  212.    w  source, at low bit of first word, and immediate uses two bytes
  213.    l  source, at low bit of first word, and immediate uses four bytes
  214.    s  source, at low bit of first word.
  215.       Used sometimes in contexts where immediate is not allowed anyway.
  216.    f  single precision float, low bit of 1st word, immediate uses 4 bytes
  217.    F  double precision float, low bit of 1st word, immediate uses 8 bytes
  218.    x  extended precision float, low bit of 1st word, immediate uses 12 bytes
  219.    p  packed float, low bit of 1st word, immediate uses 12 bytes
  220. */
  221.  
  222. #define one(x) ((x) << 16)
  223. #define two(x, y) (((x) << 16) + y)
  224.  
  225. /*
  226.     *** DANGER WILL ROBINSON ***
  227.  
  228.    The assembler requires that all instances of the same mnemonic must be
  229.    consecutive.  If they aren't, the assembler will bomb at runtime
  230.  */
  231. struct m68k_opcode m68k_opcodes[] =
  232. {
  233. {"abcd",    one(0140400),        one(0170770),        "DsDd"},
  234. {"abcd",    one(0140410),        one(0170770),        "-s-d"},
  235.  
  236.         /* Add instructions */
  237. {"addal",    one(0150700),        one(0170700),        "*lAd"},
  238. {"addaw",    one(0150300),        one(0170700),        "*wAd"},
  239. {"addib",    one(0003000),        one(0177700),        "#b$b"},
  240. {"addil",    one(0003200),        one(0177700),        "#l$l"},
  241. {"addiw",    one(0003100),        one(0177700),        "#w$w"},
  242. {"addqb",    one(0050000),        one(0170700),        "Qd$b"},
  243. {"addql",    one(0050200),        one(0170700),        "Qd%l"},
  244. {"addqw",    one(0050100),        one(0170700),        "Qd%w"},
  245.  
  246. {"addb",    one(0050000),        one(0170700),        "Qd$b"},    /* addq written as add */
  247. {"addb",    one(0003000),        one(0177700),        "#b$b"},    /* addi written as add */
  248. {"addb",    one(0150000),        one(0170700),        ";bDd"},    /* addb <ea>,    Dd */
  249. {"addb",    one(0150400),        one(0170700),        "Dd~b"},    /* addb Dd,    <ea> */
  250.  
  251. {"addw",    one(0050100),        one(0170700),        "Qd%w"},    /* addq written as add */
  252. {"addw",    one(0003100),        one(0177700),        "#w$w"},    /* addi written as add */
  253. {"addw",    one(0150300),        one(0170700),        "*wAd"},    /* adda written as add */
  254. {"addw",    one(0150100),        one(0170700),        "*wDd"},    /* addw <ea>,    Dd */
  255. {"addw",    one(0150500),        one(0170700),        "Dd~w"},    /* addw Dd,    <ea> */
  256.  
  257. {"addl",    one(0050200),        one(0170700),        "Qd%l"},    /* addq written as add */
  258. {"addl",    one(0003200),        one(0177700),        "#l$l"},    /* addi written as add */
  259. {"addl",    one(0150700),        one(0170700),        "*lAd"},    /* adda written as add */
  260. {"addl",    one(0150200),        one(0170700),        "*lDd"},    /* addl <ea>,    Dd */
  261. {"addl",    one(0150600),        one(0170700),        "Dd~l"},    /* addl Dd,    <ea> */
  262.  
  263. {"addxb",    one(0150400),        one(0170770),        "DsDd"},
  264. {"addxb",    one(0150410),        one(0170770),        "-s-d"},
  265. {"addxl",    one(0150600),        one(0170770),        "DsDd"},
  266. {"addxl",    one(0150610),        one(0170770),        "-s-d"},
  267. {"addxw",    one(0150500),        one(0170770),        "DsDd"},
  268. {"addxw",    one(0150510),        one(0170770),        "-s-d"},
  269.  
  270. {"andib",    one(0001000),        one(0177700),        "#b$b"},
  271. {"andib",    one(0001074),        one(0177777),        "#bCb"},    /* andi to ccr */
  272. {"andiw",    one(0001100),        one(0177700),        "#w$w"},
  273. {"andiw",    one(0001174),        one(0177777),        "#wSw"},    /* andi to sr */
  274. {"andil",    one(0001200),        one(0177700),        "#l$l"},
  275.  
  276. {"andb",    one(0001000),        one(0177700),        "#b$b"},    /* andi written as or */
  277. {"andb",    one(0001074),        one(0177777),        "#bCb"},    /* andi to ccr */
  278. {"andb",    one(0140000),        one(0170700),        ";bDd"},    /* memory to register */
  279. {"andb",    one(0140400),        one(0170700),        "Dd~b"},    /* register to memory */
  280. {"andw",    one(0001100),        one(0177700),        "#w$w"},    /* andi written as or */
  281. {"andw",    one(0001174),        one(0177777),        "#wSw"},    /* andi to sr */
  282. {"andw",    one(0140100),        one(0170700),        ";wDd"},    /* memory to register */
  283. {"andw",    one(0140500),        one(0170700),        "Dd~w"},    /* register to memory */
  284. {"andl",    one(0001200),        one(0177700),        "#l$l"},    /* andi written as or */
  285. {"andl",    one(0140200),        one(0170700),        ";lDd"},    /* memory to register */
  286. {"andl",    one(0140600),        one(0170700),        "Dd~l"},    /* register to memory */
  287.  
  288. {"aslb",    one(0160400),        one(0170770),        "QdDs"},
  289. {"aslb",    one(0160440),        one(0170770),        "DdDs"},
  290. {"asll",    one(0160600),        one(0170770),        "QdDs"},
  291. {"asll",    one(0160640),        one(0170770),        "DdDs"},
  292. {"aslw",    one(0160500),        one(0170770),        "QdDs"},
  293. {"aslw",    one(0160540),        one(0170770),        "DdDs"},
  294. {"aslw",    one(0160700),        one(0177700),        "~s"},    /* Shift memory */
  295. {"asrb",    one(0160000),        one(0170770),        "QdDs"},
  296. {"asrb",    one(0160040),        one(0170770),        "DdDs"},
  297. {"asrl",    one(0160200),        one(0170770),        "QdDs"},
  298. {"asrl",    one(0160240),        one(0170770),        "DdDs"},
  299. {"asrw",    one(0160100),        one(0170770),        "QdDs"},
  300. {"asrw",    one(0160140),        one(0170770),        "DdDs"},
  301. {"asrw",    one(0160300),        one(0177700),        "~s"},    /* Shift memory */
  302.  
  303. {"bhi",        one(0061000),        one(0177400),        "Bg"},
  304. {"bls",        one(0061400),        one(0177400),        "Bg"},
  305. {"bcc",        one(0062000),        one(0177400),        "Bg"},
  306. {"bcs",        one(0062400),        one(0177400),        "Bg"},
  307. {"bne",        one(0063000),        one(0177400),        "Bg"},
  308. {"beq",        one(0063400),        one(0177400),        "Bg"},
  309. {"bvc",        one(0064000),        one(0177400),        "Bg"},
  310. {"bvs",        one(0064400),        one(0177400),        "Bg"},
  311. {"bpl",        one(0065000),        one(0177400),        "Bg"},
  312. {"bmi",        one(0065400),        one(0177400),        "Bg"},
  313. {"bge",        one(0066000),        one(0177400),        "Bg"},
  314. {"blt",        one(0066400),        one(0177400),        "Bg"},
  315. {"bgt",        one(0067000),        one(0177400),        "Bg"},
  316. {"ble",        one(0067400),        one(0177400),        "Bg"},
  317.  
  318. {"bchg",    one(0000500),        one(0170700),        "Dd$s"},
  319. {"bchg",    one(0004100),        one(0177700),        "#b$s"},
  320. {"bclr",    one(0000600),        one(0170700),        "Dd$s"},
  321. {"bclr",    one(0004200),        one(0177700),        "#b$s"},
  322. {"bfchg",    two(0165300, 0),    two(0177700, 0170000),    "?sO2O3"},
  323. {"bfclr",    two(0166300, 0),    two(0177700, 0170000),    "?sO2O3"},
  324. {"bfexts",    two(0165700, 0),    two(0177700, 0100000),    "/sO2O3D1"},
  325. {"bfextu",    two(0164700, 0),    two(0177700, 0100000),    "/sO2O3D1"},
  326. {"bfffo",    two(0166700, 0),    two(0177700, 0100000),    "/sO2O3D1"},
  327. {"bfins",    two(0167700, 0),    two(0177700, 0100000),    "D1?sO2O3"},
  328. {"bfset",    two(0167300, 0),    two(0177700, 0170000),    "?sO2O3"},
  329. {"bftst",    two(0164300, 0),    two(0177700, 0170000),    "/sO2O3"},
  330. {"bset",    one(0000700),        one(0170700),        "Dd$s"},
  331. {"bset",    one(0004300),        one(0177700),        "#b$s"},
  332. {"btst",    one(0000400),        one(0170700),        "Dd@s"},
  333. {"btst",    one(0004000),        one(0177700),        "#b@s"},
  334.  
  335. {"bkpt",    one(0044110),        one(0177770),        "Qs"},
  336. {"bra",        one(0060000),        one(0177400),        "Bg"},
  337. {"bras",    one(0060000),        one(0177400),        "Bw"},
  338. {"bsr",        one(0060400),        one(0177400),        "Bg"},
  339. {"bsrs",    one(0060400),        one(0177400),        "Bw"},
  340.  
  341. {"callm",    one(0003300),        one(0177700),        "#b!s"},
  342. {"cas2l",    two(0007374, 0),    two(0177777, 0107070),    "D3D6D2D5R1R4"}, /* JF FOO this is really a 3 word ins */
  343. {"cas2w",    two(0006374, 0),    two(0177777, 0107070),    "D3D6D2D5R1R4"}, /* JF ditto */
  344. {"casb",    two(0005300, 0),    two(0177700, 0177070),    "D3D2~s"},
  345. {"casl",    two(0007300, 0),    two(0177700, 0177070),    "D3D2~s"},
  346. {"casw",    two(0006300, 0),    two(0177700, 0177070),    "D3D2~s"},
  347.  
  348. /*  {"chk",    one(0040600),        one(0170700),        ";wDd"}, JF FOO this looks wrong */
  349. {"chk2b",    two(0000300, 0004000),    two(0177700, 07777),    "!sR1"},
  350. {"chk2l",    two(0002300, 0004000),    two(0177700, 07777),    "!sR1"},
  351. {"chk2w",    two(0001300, 0004000),    two(0177700, 07777),    "!sR1"},
  352. {"chkl",    one(0040400),        one(0170700),        ";lDd"},
  353. {"chkw",    one(0040600),        one(0170700),        ";wDd"},
  354. {"clrb",    one(0041000),        one(0177700),        "$s"},
  355. {"clrl",    one(0041200),        one(0177700),        "$s"},
  356. {"clrw",    one(0041100),        one(0177700),        "$s"},
  357.  
  358. {"cmp2b",    two(0000300, 0),    two(0177700, 07777),    "!sR1"},
  359. {"cmp2l",    two(0002300, 0),    two(0177700, 07777),    "!sR1"},
  360. {"cmp2w",    two(0001300, 0),    two(0177700, 07777),    "!sR1"},
  361. {"cmpal",    one(0130700),        one(0170700),        "*lAd"},
  362. {"cmpaw",    one(0130300),        one(0170700),        "*wAd"},
  363. {"cmpib",    one(0006000),        one(0177700),        "#b;b"},
  364. {"cmpil",    one(0006200),        one(0177700),        "#l;l"},
  365. {"cmpiw",    one(0006100),        one(0177700),        "#w;w"},
  366. {"cmpb",    one(0006000),        one(0177700),        "#b;b"},    /* cmpi written as cmp */
  367. {"cmpb",    one(0130000),        one(0170700),        ";bDd"},
  368. {"cmpw",    one(0006100),        one(0177700),        "#w;w"},
  369. {"cmpw",    one(0130100),        one(0170700),        "*wDd"},
  370. {"cmpw",    one(0130300),        one(0170700),        "*wAd"},    /* cmpa written as cmp */
  371. {"cmpl",    one(0006200),        one(0177700),        "#l;l"},
  372. {"cmpl",    one(0130200),        one(0170700),        "*lDd"},
  373. {"cmpl",    one(0130700),        one(0170700),        "*lAd"},
  374. {"cmpmb",    one(0130410),        one(0170770),        "+s+d"},
  375. {"cmpml",    one(0130610),        one(0170770),        "+s+d"},
  376. {"cmpmw",    one(0130510),        one(0170770),        "+s+d"},
  377.  
  378. {"dbcc",    one(0052310),        one(0177770),        "DsBw"},
  379. {"dbcs",    one(0052710),        one(0177770),        "DsBw"},
  380. {"dbeq",    one(0053710),        one(0177770),        "DsBw"},
  381. {"dbf",        one(0050710),        one(0177770),        "DsBw"},
  382. {"dbge",    one(0056310),        one(0177770),        "DsBw"},
  383. {"dbgt",    one(0057310),        one(0177770),        "DsBw"},
  384. {"dbhi",    one(0051310),        one(0177770),        "DsBw"},
  385. {"dble",    one(0057710),        one(0177770),        "DsBw"},
  386. {"dbls",    one(0051710),        one(0177770),        "DsBw"},
  387. {"dblt",    one(0056710),        one(0177770),        "DsBw"},
  388. {"dbmi",    one(0055710),        one(0177770),        "DsBw"},
  389. {"dbne",    one(0053310),        one(0177770),        "DsBw"},
  390. {"dbpl",    one(0055310),        one(0177770),        "DsBw"},
  391. {"dbra",    one(0050710),        one(0177770),        "DsBw"},
  392. {"dbt",        one(0050310),        one(0177770),        "DsBw"},
  393. {"dbvc",    one(0054310),        one(0177770),        "DsBw"},
  394. {"dbvs",    one(0054710),        one(0177770),        "DsBw"},
  395.  
  396. {"divsl",    two(0046100, 0006000),    two(0177700, 0107770),    ";lD3D1"},
  397. {"divsl",    two(0046100, 0004000),    two(0177700, 0107770),    ";lDD"},
  398. {"divsll",    two(0046100, 0004000),    two(0177700, 0107770),    ";lD3D1"},
  399. {"divsw",    one(0100700),        one(0170700),        ";wDd"},
  400. {"divs",    one(0100700),        one(0170700),        ";wDd"},
  401. {"divul",    two(0046100, 0002000),    two(0177700, 0107770),    ";lD3D1"},
  402. {"divul",    two(0046100, 0000000),    two(0177700, 0107770),    ";lDD"},
  403. {"divull",    two(0046100, 0000000),    two(0177700, 0107770),    ";lD3D1"},
  404. {"divuw",    one(0100300),        one(0170700),        ";wDd"},
  405. {"divu",    one(0100300),        one(0170700),        ";wDd"},
  406. {"eorb",    one(0005000),        one(0177700),        "#b$s"},    /* eori written as or */
  407. {"eorb",    one(0005074),        one(0177777),        "#bCs"},    /* eori to ccr */
  408. {"eorb",    one(0130400),        one(0170700),        "Dd$s"},    /* register to memory */
  409. {"eorib",    one(0005000),        one(0177700),        "#b$s"},
  410. {"eorib",    one(0005074),        one(0177777),        "#bCs"},    /* eori to ccr */
  411. {"eoril",    one(0005200),        one(0177700),        "#l$s"},
  412. {"eoriw",    one(0005100),        one(0177700),        "#w$s"},
  413. {"eoriw",    one(0005174),        one(0177777),        "#wSs"},    /* eori to sr */
  414. {"eorl",    one(0005200),        one(0177700),        "#l$s"},
  415. {"eorl",    one(0130600),        one(0170700),        "Dd$s"},
  416. {"eorw",    one(0005100),        one(0177700),        "#w$s"},
  417. {"eorw",    one(0005174),        one(0177777),        "#wSs"},    /* eori to sr */
  418. {"eorw",    one(0130500),        one(0170700),        "Dd$s"},
  419.  
  420. {"exg",        one(0140500),        one(0170770),        "DdDs"},
  421. {"exg",        one(0140510),        one(0170770),        "AdAs"},
  422. {"exg",        one(0140610),        one(0170770),        "DdAs"},
  423. {"exg",        one(0140610),        one(0170770),        "AsDd"},
  424.  
  425. {"extw",    one(0044200),        one(0177770),        "Ds"},
  426. {"extl",    one(0044300),        one(0177770),        "Ds"},
  427. {"extbl",    one(0044700),        one(0177770),        "Ds"},
  428. {"extb.l",    one(0044700),        one(0177770),        "Ds"},    /* Not sure we should support this one*/
  429.  
  430. {"illegal",    one(0045374),        one(0177777),        ""},
  431. {"jmp",        one(0047300),        one(0177700),        "!s"},
  432. {"jsr",        one(0047200),        one(0177700),        "!s"},
  433. {"lea",        one(0040700),        one(0170700),        "!sAd"},
  434. {"linkw",    one(0047120),        one(0177770),        "As#w"},
  435. {"linkl",    one(0044010),        one(0177770),        "As#l"},
  436. {"link",    one(0047120),        one(0177770),        "As#w"},
  437. {"link",    one(0044010),        one(0177770),        "As#l"},
  438.  
  439. {"lslb",    one(0160410),        one(0170770),        "QdDs"},    /* lsrb #Q,    Ds */
  440. {"lslb",    one(0160450),        one(0170770),        "DdDs"},    /* lsrb Dd,    Ds */
  441. {"lslw",    one(0160510),        one(0170770),        "QdDs"},    /* lsrb #Q,    Ds */
  442. {"lslw",    one(0160550),        one(0170770),        "DdDs"},    /* lsrb Dd,    Ds */
  443. {"lslw",    one(0161700),        one(0177700),        "~s"},    /* Shift memory */
  444. {"lsll",    one(0160610),        one(0170770),        "QdDs"},    /* lsrb #Q,    Ds */
  445. {"lsll",    one(0160650),        one(0170770),        "DdDs"},    /* lsrb Dd,    Ds */
  446.  
  447. {"lsrb",    one(0160010),        one(0170770),        "QdDs"} /* lsrb #Q,    Ds */,
  448. {"lsrb",    one(0160050),        one(0170770),        "DdDs"},    /* lsrb Dd,    Ds */
  449. {"lsrl",    one(0160210),        one(0170770),        "QdDs"},    /* lsrb #Q,    Ds */
  450. {"lsrl",    one(0160250),        one(0170770),        "DdDs"},    /* lsrb #Q,    Ds */
  451. {"lsrw",    one(0160110),        one(0170770),        "QdDs"},    /* lsrb #Q,    Ds */
  452. {"lsrw",    one(0160150),        one(0170770),        "DdDs"},    /* lsrb #Q,    Ds */
  453. {"lsrw",    one(0161300),        one(0177700),        "~s"},    /* Shift memory */
  454.  
  455. {"moveal",    one(0020100),        one(0170700),        "*lAd"},
  456. {"moveaw",    one(0030100),        one(0170700),        "*wAd"},
  457. {"moveb",    one(0010000),        one(0170000),        ";b$d"},    /* move */
  458. {"movel",    one(0070000),        one(0170400),        "MsDd"},    /* moveq written as move */
  459. {"movel",    one(0020000),        one(0170000),        "*l$d"},
  460. {"movel",    one(0020100),        one(0170700),        "*lAd"},
  461. {"movel",    one(0047140),        one(0177770),        "AsUd"},    /* move to USP */
  462. {"movel",    one(0047150),        one(0177770),        "UdAs"},    /* move from USP */
  463.  
  464. {"movec",    one(0047173),        one(0177777),        "R1Jj"},
  465. {"movec",    one(0047173),        one(0177777),        "R1#j"},
  466. {"movec",    one(0047172),        one(0177777),        "JjR1"},
  467. {"movec",    one(0047172),        one(0177777),        "#jR1"},
  468.  
  469. /* JF added these next four for the assembler */
  470. {"moveml",    one(0044300),        one(0177700),        "Lw&s"},    /* movem reg to mem. */
  471. {"moveml",    one(0044340),        one(0177770),        "lw-s"},    /* movem reg to autodecrement. */
  472. {"moveml",    one(0046300),        one(0177700),        "!sLw"},    /* movem mem to reg. */
  473. {"moveml",    one(0046330),        one(0177770),        "+sLw"},    /* movem autoinc to reg. */
  474.  
  475. {"moveml",    one(0044300),        one(0177700),        "#w&s"},    /* movem reg to mem. */
  476. {"moveml",    one(0044340),        one(0177770),        "#w-s"},    /* movem reg to autodecrement. */
  477. {"moveml",    one(0046300),        one(0177700),        "!s#w"},    /* movem mem to reg. */
  478. {"moveml",    one(0046330),        one(0177770),        "+s#w"},    /* movem autoinc to reg. */
  479.  
  480. /* JF added these next four for the assembler */
  481. {"movemw",    one(0044200),        one(0177700),        "Lw&s"},    /* movem reg to mem. */
  482. {"movemw",    one(0044240),        one(0177770),        "lw-s"},    /* movem reg to autodecrement. */
  483. {"movemw",    one(0046200),        one(0177700),        "!sLw"},    /* movem mem to reg. */
  484. {"movemw",    one(0046230),        one(0177770),        "+sLw"},    /* movem autoinc to reg. */
  485.  
  486. {"movemw",    one(0044200),        one(0177700),        "#w&s"},    /* movem reg to mem. */
  487. {"movemw",    one(0044240),        one(0177770),        "#w-s"},    /* movem reg to autodecrement. */
  488. {"movemw",    one(0046200),        one(0177700),        "!s#w"},    /* movem mem to reg. */
  489. {"movemw",    one(0046230),        one(0177770),        "+s#w"},    /* movem autoinc to reg. */
  490.  
  491. {"movepl",    one(0000510),        one(0170770),        "dsDd"},    /* memory to register */
  492. {"movepl",    one(0000710),        one(0170770),        "Ddds"},    /* register to memory */
  493. {"movepw",    one(0000410),        one(0170770),        "dsDd"},    /* memory to register */
  494. {"movepw",    one(0000610),        one(0170770),        "Ddds"},    /* register to memory */
  495. {"moveq",    one(0070000),        one(0170400),        "MsDd"},
  496. {"movew",    one(0030000),        one(0170000),        "*w$d"},
  497. {"movew",    one(0030100),        one(0170700),        "*wAd"},    /* movea,    written as move */
  498. {"movew",    one(0040300),        one(0177700),        "Ss$s"},    /* Move from sr */
  499. {"movew",    one(0041300),        one(0177700),        "Cs$s"},    /* Move from ccr */
  500. {"movew",    one(0042300),        one(0177700),        ";wCd"},    /* move to ccr */
  501. {"movew",    one(0043300),        one(0177700),        ";wSd"},    /* move to sr */
  502.  
  503. {"movesb",    two(0007000, 0),    two(0177700, 07777),    "~sR1"},     /* moves from memory */
  504. {"movesb",    two(0007000, 04000),    two(0177700, 07777),    "R1~s"},     /* moves to memory */
  505. {"movesl",    two(0007200, 0),    two(0177700, 07777),    "~sR1"},     /* moves from memory */
  506. {"movesl",    two(0007200, 04000),    two(0177700, 07777),    "R1~s"},     /* moves to memory */
  507. {"movesw",    two(0007100, 0),    two(0177700, 07777),    "~sR1"},     /* moves from memory */
  508. {"movesw",    two(0007100, 04000),    two(0177700, 07777),    "R1~s"},     /* moves to memory */
  509.  
  510. {"mulsl",    two(0046000, 004000),    two(0177700, 0107770),    ";lD1"},
  511. {"mulsl",    two(0046000, 006000),    two(0177700, 0107770),    ";lD3D1"},
  512. {"mulsw",    one(0140700),        one(0170700),        ";wDd"},
  513. {"muls",    one(0140700),        one(0170700),        ";wDd"},
  514. {"mulul",    two(0046000, 000000),    two(0177700, 0107770),    ";lD1"},
  515. {"mulul",    two(0046000, 002000),    two(0177700, 0107770),    ";lD3D1"},
  516. {"muluw",    one(0140300),        one(0170700),        ";wDd"},
  517. {"mulu",    one(0140300),        one(0170700),        ";wDd"},
  518. {"nbcd",    one(0044000),        one(0177700),        "$s"},
  519. {"negb",    one(0042000),        one(0177700),        "$s"},
  520. {"negl",    one(0042200),        one(0177700),        "$s"},
  521. {"negw",    one(0042100),        one(0177700),        "$s"},
  522. {"negxb",    one(0040000),        one(0177700),        "$s"},
  523. {"negxl",    one(0040200),        one(0177700),        "$s"},
  524. {"negxw",    one(0040100),        one(0177700),        "$s"},
  525. {"nop",        one(0047161),        one(0177777),        ""},
  526. {"notb",    one(0043000),        one(0177700),        "$s"},
  527. {"notl",    one(0043200),        one(0177700),        "$s"},
  528. {"notw",    one(0043100),        one(0177700),        "$s"},
  529.  
  530. {"orb",        one(0000000),        one(0177700),        "#b$s"},    /* ori written as or */
  531. {"orb",        one(0000074),        one(0177777),        "#bCs"},    /* ori to ccr */
  532. {"orb",        one(0100000),        one(0170700),        ";bDd"},    /* memory to register */
  533. {"orb",        one(0100400),        one(0170700),        "Dd~s"},    /* register to memory */
  534. {"orib",    one(0000000),        one(0177700),        "#b$s"},
  535. {"orib",    one(0000074),        one(0177777),        "#bCs"},    /* ori to ccr */
  536. {"oril",    one(0000200),        one(0177700),        "#l$s"},
  537. {"oriw",    one(0000100),        one(0177700),        "#w$s"},
  538. {"oriw",    one(0000174),        one(0177777),        "#wSs"},    /* ori to sr */
  539. {"orl",        one(0000200),        one(0177700),        "#l$s"},
  540. {"orl",        one(0100200),        one(0170700),        ";lDd"},    /* memory to register */
  541. {"orl",        one(0100600),        one(0170700),        "Dd~s"},    /* register to memory */
  542. {"orw",        one(0000100),        one(0177700),        "#w$s"},
  543. {"orw",        one(0000174),        one(0177777),        "#wSs"},    /* ori to sr */
  544. {"orw",        one(0100100),        one(0170700),        ";wDd"},    /* memory to register */
  545. {"orw",        one(0100500),        one(0170700),        "Dd~s"},    /* register to memory */
  546.  
  547. {"pack",    one(0100500),        one(0170770),        "DsDd#w"},    /* pack Ds,    Dd,    #w */
  548. {"pack",    one(0100510),        one(0170770),        "-s-d#w"},    /* pack -(As),    -(Ad),    #w */
  549. {"pea",        one(0044100),        one(0177700),        "!s"},
  550. {"reset",    one(0047160),        one(0177777),        ""},
  551.  
  552. {"rolb",    one(0160430),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  553. {"rolb",    one(0160470),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  554. {"roll",    one(0160630),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  555. {"roll",    one(0160670),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  556. {"rolw",    one(0160530),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  557. {"rolw",    one(0160570),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  558. {"rolw",    one(0163700),        one(0177700),        "~s"},    /* Rotate memory */
  559. {"rorb",    one(0160030),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  560. {"rorb",    one(0160070),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  561. {"rorl",    one(0160230),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  562. {"rorl",    one(0160270),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  563. {"rorw",    one(0160130),        one(0170770),        "QdDs"},    /* rorb #Q,    Ds */
  564. {"rorw",    one(0160170),        one(0170770),        "DdDs"},    /* rorb Dd,    Ds */
  565. {"rorw",    one(0163300),        one(0177700),        "~s"},    /* Rotate memory */
  566.  
  567. {"roxlb",    one(0160420),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  568. {"roxlb",    one(0160460),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  569. {"roxll",    one(0160620),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  570. {"roxll",    one(0160660),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  571. {"roxlw",    one(0160520),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  572. {"roxlw",    one(0160560),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  573. {"roxlw",    one(0162700),        one(0177700),        "~s"},    /* Rotate memory */
  574. {"roxrb",    one(0160020),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  575. {"roxrb",    one(0160060),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  576. {"roxrl",    one(0160220),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  577. {"roxrl",    one(0160260),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  578. {"roxrw",    one(0160120),        one(0170770),        "QdDs"},    /* roxrb #Q,    Ds */
  579. {"roxrw",    one(0160160),        one(0170770),        "DdDs"},    /* roxrb Dd,    Ds */
  580. {"roxrw",    one(0162300),        one(0177700),        "~s"},    /* Rotate memory */
  581.  
  582. {"rtd",        one(0047164),        one(0177777),        "#w"},
  583. {"rte",        one(0047163),        one(0177777),        ""},
  584. {"rtm",        one(0003300),        one(0177760),        "Rs"},
  585. {"rtr",        one(0047167),        one(0177777),        ""},
  586. {"rts",        one(0047165),        one(0177777),        ""},
  587.  
  588. {"scc",        one(0052300),        one(0177700),        "$s"},
  589. {"scs",        one(0052700),        one(0177700),        "$s"},
  590. {"seq",        one(0053700),        one(0177700),        "$s"},
  591. {"sf",        one(0050700),        one(0177700),        "$s"},
  592. {"sge",        one(0056300),        one(0177700),        "$s"},
  593. {"sgt",        one(0057300),        one(0177700),        "$s"},
  594. {"shi",        one(0051300),        one(0177700),        "$s"},
  595. {"sle",        one(0057700),        one(0177700),        "$s"},
  596. {"sls",        one(0051700),        one(0177700),        "$s"},
  597. {"slt",        one(0056700),        one(0177700),        "$s"},
  598. {"smi",        one(0055700),        one(0177700),        "$s"},
  599. {"sne",        one(0053300),        one(0177700),        "$s"},
  600. {"spl",        one(0055300),        one(0177700),        "$s"},
  601. {"st",        one(0050300),        one(0177700),        "$s"},
  602. {"svc",        one(0054300),        one(0177700),        "$s"},
  603. {"svs",        one(0054700),        one(0177700),        "$s"},
  604.  
  605. {"sbcd",    one(0100400),        one(0170770),        "DsDd"},
  606. {"sbcd",    one(0100410),        one(0170770),        "-s-d"},
  607. {"stop",    one(0047162),        one(0177777),        "#w"},
  608.  
  609. {"subal",    one(0110700),        one(0170700),        "*lAd"},
  610. {"subaw",    one(0110300),        one(0170700),        "*wAd"},
  611. {"subb",    one(0050400),        one(0170700),        "Qd%s"},    /* subq written as sub */
  612. {"subb",    one(0002000),        one(0177700),        "#b$s"},    /* subi written as sub */
  613. {"subb",    one(0110000),        one(0170700),        ";bDd"},    /* subb ? ?,    Dd */
  614. {"subb",    one(0110400),        one(0170700),        "Dd~s"},    /* subb Dd,    ? ? */
  615. {"subib",    one(0002000),        one(0177700),        "#b$s"},
  616. {"subil",    one(0002200),        one(0177700),        "#l$s"},
  617. {"subiw",    one(0002100),        one(0177700),        "#w$s"},
  618. {"subl",    one(0050600),        one(0170700),        "Qd%s"},
  619. {"subl",    one(0002200),        one(0177700),        "#l$s"},
  620. {"subl",    one(0110700),        one(0170700),        "*lAd"},
  621. {"subl",    one(0110200),        one(0170700),        "*lDd"},
  622. {"subl",    one(0110600),        one(0170700),        "Dd~s"},
  623. {"subqb",    one(0050400),        one(0170700),        "Qd%s"},
  624. {"subql",    one(0050600),        one(0170700),        "Qd%s"},
  625. {"subqw",    one(0050500),        one(0170700),        "Qd%s"},
  626. {"subw",    one(0050500),        one(0170700),        "Qd%s"},
  627. {"subw",    one(0002100),        one(0177700),        "#w$s"},
  628. {"subw",    one(0110100),        one(0170700),        "*wDd"},
  629. {"subw",    one(0110300),        one(0170700),        "*wAd"},    /* suba written as sub */
  630. {"subw",    one(0110500),        one(0170700),        "Dd~s"},
  631. {"subxb",    one(0110400),        one(0170770),        "DsDd"},    /* subxb Ds,    Dd */
  632. {"subxb",    one(0110410),        one(0170770),        "-s-d"},    /* subxb -(As),    -(Ad) */
  633. {"subxl",    one(0110600),        one(0170770),        "DsDd"},
  634. {"subxl",    one(0110610),        one(0170770),        "-s-d"},
  635. {"subxw",    one(0110500),        one(0170770),        "DsDd"},
  636. {"subxw",    one(0110510),        one(0170770),        "-s-d"},
  637.  
  638. {"swap",    one(0044100),        one(0177770),        "Ds"},
  639.     
  640. {"tas",        one(0045300),        one(0177700),        "$s"},
  641. {"trap",    one(0047100),        one(0177760),        "Ts"},
  642.  
  643. {"trapcc",    one(0052374),        one(0177777),        ""},
  644. {"trapcs",    one(0052774),        one(0177777),        ""},
  645. {"trapeq",    one(0053774),        one(0177777),        ""},
  646. {"trapf",    one(0050774),        one(0177777),        ""},
  647. {"trapge",    one(0056374),        one(0177777),        ""},
  648. {"trapgt",    one(0057374),        one(0177777),        ""},
  649. {"traphi",    one(0051374),        one(0177777),        ""},
  650. {"traple",    one(0057774),        one(0177777),        ""},
  651. {"trapls",    one(0051774),        one(0177777),        ""},
  652. {"traplt",    one(0056774),        one(0177777),        ""},
  653. {"trapmi",    one(0055774),        one(0177777),        ""},
  654. {"trapne",    one(0053374),        one(0177777),        ""},
  655. {"trappl",    one(0055374),        one(0177777),        ""},
  656. {"trapt",    one(0050374),        one(0177777),        ""},
  657. {"trapvc",    one(0054374),        one(0177777),        ""},
  658. {"trapvs",    one(0054774),        one(0177777),        ""},
  659.  
  660. #if (!(CROSSATARI || atarist || atariminix))
  661. {"trapcc.w",    one(0052372),        one(0177777),        ""},
  662. {"trapcs.w",    one(0052772),        one(0177777),        ""},
  663. {"trapeq.w",    one(0053772),        one(0177777),        ""},
  664. {"trapf.w",    one(0050772),        one(0177777),        ""},
  665. {"trapge.w",    one(0056372),        one(0177777),        ""},
  666. {"trapgt.w",    one(0057372),        one(0177777),        ""},
  667. {"traphi.w",    one(0051372),        one(0177777),        ""},
  668. {"traple.w",    one(0057772),        one(0177777),        ""},
  669. {"trapls.w",    one(0051772),        one(0177777),        ""},
  670. {"traplt.w",    one(0056772),        one(0177777),        ""},
  671. {"trapmi.w",    one(0055772),        one(0177777),        ""},
  672. {"trapne.w",    one(0053372),        one(0177777),        ""},
  673. {"trappl.w",    one(0055372),        one(0177777),        ""},
  674. {"trapt.w",    one(0050372),        one(0177777),        ""},
  675. {"trapvc.w",    one(0054372),        one(0177777),        ""},
  676. {"trapvs.w",    one(0054772),        one(0177777),        ""},
  677.  
  678. {"trapcc.l",    one(0052373),        one(0177777),        ""},
  679. {"trapcs.l",    one(0052773),        one(0177777),        ""},
  680. {"trapeq.l",    one(0053773),        one(0177777),        ""},
  681. {"trapf.l",    one(0050773),        one(0177777),        ""},
  682. {"trapge.l",    one(0056373),        one(0177777),        ""},
  683. {"trapgt.l",    one(0057373),        one(0177777),        ""},
  684. {"traphi.l",    one(0051373),        one(0177777),        ""},
  685. {"traple.l",    one(0057773),        one(0177777),        ""},
  686. {"trapls.l",    one(0051773),        one(0177777),        ""},
  687. {"traplt.l",    one(0056773),        one(0177777),        ""},
  688. {"trapmi.l",    one(0055773),        one(0177777),        ""},
  689. {"trapne.l",    one(0053373),        one(0177777),        ""},
  690. {"trappl.l",    one(0055373),        one(0177777),        ""},
  691. {"trapt.l",    one(0050373),        one(0177777),        ""},
  692. {"trapvc.l",    one(0054373),        one(0177777),        ""},
  693. {"trapvs.l",    one(0054773),        one(0177777),        ""},
  694.  
  695. #endif /* !(CROSSATARI || atarist || atariminix) */
  696.  
  697. {"trapv",    one(0047166),        one(0177777),        ""},
  698.  
  699. {"tstb",    one(0045000),        one(0177700),        ";b"},
  700. {"tstw",    one(0045100),        one(0177700),        "*w"},
  701. {"tstl",    one(0045200),        one(0177700),        "*l"},
  702.  
  703. {"unlk",    one(0047130),        one(0177770),        "As"},
  704. {"unpk",    one(0100600),        one(0170770),        "DsDd#w"},
  705. {"unpk",    one(0100610),        one(0170770),        "-s-d#w"},
  706.     /* JF floating pt stuff moved down here */
  707.  
  708. {"fabsb",    two(0xF000, 0x5818),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  709. {"fabsd",    two(0xF000, 0x5418),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  710. {"fabsl",    two(0xF000, 0x4018),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  711. {"fabsp",    two(0xF000, 0x4C18),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  712. {"fabss",    two(0xF000, 0x4418),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  713. {"fabsw",    two(0xF000, 0x5018),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  714. {"fabsx",    two(0xF000, 0x0018),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  715. {"fabsx",    two(0xF000, 0x4818),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  716. {"fabsx",    two(0xF000, 0x0018),    two(0xF1C0, 0xE07F),    "IiFt"},
  717.  
  718. {"facosb",    two(0xF000, 0x581C),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  719. {"facosd",    two(0xF000, 0x541C),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  720. {"facosl",    two(0xF000, 0x401C),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  721. {"facosp",    two(0xF000, 0x4C1C),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  722. {"facoss",    two(0xF000, 0x441C),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  723. {"facosw",    two(0xF000, 0x501C),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  724. {"facosx",    two(0xF000, 0x001C),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  725. {"facosx",    two(0xF000, 0x481C),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  726. {"facosx",    two(0xF000, 0x001C),    two(0xF1C0, 0xE07F),    "IiFt"},
  727.  
  728. {"faddb",    two(0xF000, 0x5822),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  729. {"faddd",    two(0xF000, 0x5422),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  730. {"faddl",    two(0xF000, 0x4022),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  731. {"faddp",    two(0xF000, 0x4C22),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  732. {"fadds",    two(0xF000, 0x4422),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  733. {"faddw",    two(0xF000, 0x5022),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  734. {"faddx",    two(0xF000, 0x0022),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  735. {"faddx",    two(0xF000, 0x4822),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  736. /* {"faddx",    two(0xF000, 0x0022),    two(0xF1C0, 0xE07F),    "IiFt"}, JF removed */
  737.  
  738. {"fasinb",    two(0xF000, 0x580C),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  739. {"fasind",    two(0xF000, 0x540C),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  740. {"fasinl",    two(0xF000, 0x400C),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  741. {"fasinp",    two(0xF000, 0x4C0C),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  742. {"fasins",    two(0xF000, 0x440C),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  743. {"fasinw",    two(0xF000, 0x500C),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  744. {"fasinx",    two(0xF000, 0x000C),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  745. {"fasinx",    two(0xF000, 0x480C),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  746. {"fasinx",    two(0xF000, 0x000C),    two(0xF1C0, 0xE07F),    "IiFt"},
  747.  
  748. {"fatanb",    two(0xF000, 0x580A),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  749. {"fatand",    two(0xF000, 0x540A),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  750. {"fatanl",    two(0xF000, 0x400A),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  751. {"fatanp",    two(0xF000, 0x4C0A),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  752. {"fatans",    two(0xF000, 0x440A),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  753. {"fatanw",    two(0xF000, 0x500A),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  754. {"fatanx",    two(0xF000, 0x000A),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  755. {"fatanx",    two(0xF000, 0x480A),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  756. {"fatanx",    two(0xF000, 0x000A),    two(0xF1C0, 0xE07F),    "IiFt"},
  757.  
  758. {"fatanhb",    two(0xF000, 0x580D),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  759. {"fatanhd",    two(0xF000, 0x540D),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  760. {"fatanhl",    two(0xF000, 0x400D),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  761. {"fatanhp",    two(0xF000, 0x4C0D),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  762. {"fatanhs",    two(0xF000, 0x440D),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  763. {"fatanhw",    two(0xF000, 0x500D),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  764. {"fatanhx",    two(0xF000, 0x000D),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  765. {"fatanhx",    two(0xF000, 0x480D),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  766. {"fatanhx",    two(0xF000, 0x000D),    two(0xF1C0, 0xE07F),    "IiFt"},
  767.  
  768. {"fbeq",    one(0xF081),        one(0xF1BF),        "IdBc"},
  769. {"fbf",        one(0xF080),        one(0xF1BF),        "IdBc"},
  770. {"fbge",    one(0xF093),        one(0xF1BF),        "IdBc"},
  771. {"fbgl",    one(0xF096),        one(0xF1BF),        "IdBc"},
  772. {"fbgle",    one(0xF097),        one(0xF1BF),        "IdBc"},
  773. {"fbgt",    one(0xF092),        one(0xF1BF),        "IdBc"},
  774. {"fble",    one(0xF095),        one(0xF1BF),        "IdBc"},
  775. {"fblt",    one(0xF094),        one(0xF1BF),        "IdBc"},
  776. {"fbne",    one(0xF08E),        one(0xF1BF),        "IdBc"},
  777. {"fbnge",    one(0xF09C),        one(0xF1BF),        "IdBc"},
  778. {"fbngl",    one(0xF099),        one(0xF1BF),        "IdBc"},
  779. {"fbngle",    one(0xF098),        one(0xF1BF),        "IdBc"},
  780. {"fbngt",    one(0xF09D),        one(0xF1BF),        "IdBc"},
  781. {"fbnle",    one(0xF09A),        one(0xF1BF),        "IdBc"},
  782. {"fbnlt",    one(0xF09B),        one(0xF1BF),        "IdBc"},
  783. {"fboge",    one(0xF083),        one(0xF1BF),        "IdBc"},
  784. {"fbogl",    one(0xF086),        one(0xF1BF),        "IdBc"},
  785. {"fbogt",    one(0xF082),        one(0xF1BF),        "IdBc"},
  786. {"fbole",    one(0xF085),        one(0xF1BF),        "IdBc"},
  787. {"fbolt",    one(0xF084),        one(0xF1BF),        "IdBc"},
  788. {"fbor",    one(0xF087),        one(0xF1BF),        "IdBc"},
  789. {"fbseq",    one(0xF091),        one(0xF1BF),        "IdBc"},
  790. {"fbsf",    one(0xF090),        one(0xF1BF),        "IdBc"},
  791. {"fbsne",    one(0xF09E),        one(0xF1BF),        "IdBc"},
  792. {"fbst",    one(0xF09F),        one(0xF1BF),        "IdBc"},
  793. {"fbt",        one(0xF08F),        one(0xF1BF),        "IdBc"},
  794. {"fbueq",    one(0xF089),        one(0xF1BF),        "IdBc"},
  795. {"fbuge",    one(0xF08B),        one(0xF1BF),        "IdBc"},
  796. {"fbugt",    one(0xF08A),        one(0xF1BF),        "IdBc"},
  797. {"fbule",    one(0xF08D),        one(0xF1BF),        "IdBc"},
  798. {"fbult",    one(0xF08C),        one(0xF1BF),        "IdBc"},
  799. {"fbun",    one(0xF088),        one(0xF1BF),        "IdBc"},
  800.  
  801. {"fcmpb",    two(0xF000, 0x5838),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  802. {"fcmpd",    two(0xF000, 0x5438),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  803. {"fcmpl",    two(0xF000, 0x4038),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  804. {"fcmpp",    two(0xF000, 0x4C38),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  805. {"fcmps",    two(0xF000, 0x4438),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  806. {"fcmpw",    two(0xF000, 0x5038),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  807. {"fcmpx",    two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  808. {"fcmpx",    two(0xF000, 0x4838),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  809. /* {"fcmpx",    two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiFt"}, JF removed */
  810.  
  811. {"fcosb",    two(0xF000, 0x581D),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  812. {"fcosd",    two(0xF000, 0x541D),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  813. {"fcosl",    two(0xF000, 0x401D),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  814. {"fcosp",    two(0xF000, 0x4C1D),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  815. {"fcoss",    two(0xF000, 0x441D),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  816. {"fcosw",    two(0xF000, 0x501D),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  817. {"fcosx",    two(0xF000, 0x001D),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  818. {"fcosx",    two(0xF000, 0x481D),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  819. {"fcosx",    two(0xF000, 0x001D),    two(0xF1C0, 0xE07F),    "IiFt"},
  820.  
  821. {"fcoshb",    two(0xF000, 0x5819),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  822. {"fcoshd",    two(0xF000, 0x5419),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  823. {"fcoshl",    two(0xF000, 0x4019),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  824. {"fcoshp",    two(0xF000, 0x4C19),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  825. {"fcoshs",    two(0xF000, 0x4419),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  826. {"fcoshw",    two(0xF000, 0x5019),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  827. {"fcoshx",    two(0xF000, 0x0019),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  828. {"fcoshx",    two(0xF000, 0x4819),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  829. {"fcoshx",    two(0xF000, 0x0019),    two(0xF1C0, 0xE07F),    "IiFt"},
  830.  
  831. {"fdbeq",    two(0xF048, 0x0001),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  832. {"fdbf",    two(0xF048, 0x0000),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  833. {"fdbge",    two(0xF048, 0x0013),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  834. {"fdbgl",    two(0xF048, 0x0016),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  835. {"fdbgle",    two(0xF048, 0x0017),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  836. {"fdbgt",    two(0xF048, 0x0012),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  837. {"fdble",    two(0xF048, 0x0015),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  838. {"fdblt",    two(0xF048, 0x0014),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  839. {"fdbne",    two(0xF048, 0x000E),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  840. {"fdbnge",    two(0xF048, 0x001C),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  841. {"fdbngl",    two(0xF048, 0x0019),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  842. {"fdbngle",    two(0xF048, 0x0018),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  843. {"fdbngt",    two(0xF048, 0x001D),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  844. {"fdbnle",    two(0xF048, 0x001A),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  845. {"fdbnlt",    two(0xF048, 0x001B),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  846. {"fdboge",    two(0xF048, 0x0003),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  847. {"fdbogl",    two(0xF048, 0x0006),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  848. {"fdbogt",    two(0xF048, 0x0002),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  849. {"fdbole",    two(0xF048, 0x0005),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  850. {"fdbolt",    two(0xF048, 0x0004),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  851. {"fdbor",    two(0xF048, 0x0007),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  852. {"fdbseq",    two(0xF048, 0x0011),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  853. {"fdbsf",    two(0xF048, 0x0010),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  854. {"fdbsne",    two(0xF048, 0x001E),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  855. {"fdbst",    two(0xF048, 0x001F),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  856. {"fdbt",    two(0xF048, 0x000F),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  857. {"fdbueq",    two(0xF048, 0x0009),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  858. {"fdbuge",    two(0xF048, 0x000B),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  859. {"fdbugt",    two(0xF048, 0x000A),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  860. {"fdbule",    two(0xF048, 0x000D),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  861. {"fdbult",    two(0xF048, 0x000C),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  862. {"fdbun",    two(0xF048, 0x0008),    two(0xF1F8, 0xFFFF),    "IiDsBw"},
  863.  
  864. {"fdivb",    two(0xF000, 0x5820),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  865. {"fdivd",    two(0xF000, 0x5420),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  866. {"fdivl",    two(0xF000, 0x4020),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  867. {"fdivp",    two(0xF000, 0x4C20),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  868. {"fdivs",    two(0xF000, 0x4420),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  869. {"fdivw",    two(0xF000, 0x5020),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  870. {"fdivx",    two(0xF000, 0x0020),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  871. {"fdivx",    two(0xF000, 0x4820),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  872. /* {"fdivx",    two(0xF000, 0x0020),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
  873.  
  874. {"fetoxb",    two(0xF000, 0x5810),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  875. {"fetoxd",    two(0xF000, 0x5410),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  876. {"fetoxl",    two(0xF000, 0x4010),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  877. {"fetoxp",    two(0xF000, 0x4C10),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  878. {"fetoxs",    two(0xF000, 0x4410),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  879. {"fetoxw",    two(0xF000, 0x5010),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  880. {"fetoxx",    two(0xF000, 0x0010),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  881. {"fetoxx",    two(0xF000, 0x4810),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  882. {"fetoxx",    two(0xF000, 0x0010),    two(0xF1C0, 0xE07F),    "IiFt"},
  883.  
  884. {"fetoxm1b",    two(0xF000, 0x5808),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  885. {"fetoxm1d",    two(0xF000, 0x5408),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  886. {"fetoxm1l",    two(0xF000, 0x4008),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  887. {"fetoxm1p",    two(0xF000, 0x4C08),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  888. {"fetoxm1s",    two(0xF000, 0x4408),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  889. {"fetoxm1w",    two(0xF000, 0x5008),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  890. {"fetoxm1x",    two(0xF000, 0x0008),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  891. {"fetoxm1x",    two(0xF000, 0x4808),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  892. {"fetoxm1x",    two(0xF000, 0x0008),    two(0xF1C0, 0xE07F),    "IiFt"},
  893.  
  894. {"fgetexpb",    two(0xF000, 0x581E),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  895. {"fgetexpd",    two(0xF000, 0x541E),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  896. {"fgetexpl",    two(0xF000, 0x401E),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  897. {"fgetexpp",    two(0xF000, 0x4C1E),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  898. {"fgetexps",    two(0xF000, 0x441E),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  899. {"fgetexpw",    two(0xF000, 0x501E),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  900. {"fgetexpx",    two(0xF000, 0x001E),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  901. {"fgetexpx",    two(0xF000, 0x481E),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  902. {"fgetexpx",    two(0xF000, 0x001E),    two(0xF1C0, 0xE07F),    "IiFt"},
  903.  
  904. {"fgetmanb",    two(0xF000, 0x581F),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  905. {"fgetmand",    two(0xF000, 0x541F),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  906. {"fgetmanl",    two(0xF000, 0x401F),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  907. {"fgetmanp",    two(0xF000, 0x4C1F),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  908. {"fgetmans",    two(0xF000, 0x441F),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  909. {"fgetmanw",    two(0xF000, 0x501F),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  910. {"fgetmanx",    two(0xF000, 0x001F),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  911. {"fgetmanx",    two(0xF000, 0x481F),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  912. {"fgetmanx",    two(0xF000, 0x001F),    two(0xF1C0, 0xE07F),    "IiFt"},
  913.  
  914. {"fintb",    two(0xF000, 0x5801),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  915. {"fintd",    two(0xF000, 0x5401),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  916. {"fintl",    two(0xF000, 0x4001),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  917. {"fintp",    two(0xF000, 0x4C01),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  918. {"fints",    two(0xF000, 0x4401),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  919. {"fintw",    two(0xF000, 0x5001),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  920. {"fintx",    two(0xF000, 0x0001),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  921. {"fintx",    two(0xF000, 0x4801),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  922. {"fintx",    two(0xF000, 0x0001),    two(0xF1C0, 0xE07F),    "IiFt"},
  923.  
  924. {"fintrzb",    two(0xF000, 0x5803),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  925. {"fintrzd",    two(0xF000, 0x5403),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  926. {"fintrzl",    two(0xF000, 0x4003),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  927. {"fintrzp",    two(0xF000, 0x4C03),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  928. {"fintrzs",    two(0xF000, 0x4403),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  929. {"fintrzw",    two(0xF000, 0x5003),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  930. {"fintrzx",    two(0xF000, 0x0003),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  931. {"fintrzx",    two(0xF000, 0x4803),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  932. {"fintrzx",    two(0xF000, 0x0003),    two(0xF1C0, 0xE07F),    "IiFt"},
  933.  
  934. {"flog10b",    two(0xF000, 0x5815),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  935. {"flog10d",    two(0xF000, 0x5415),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  936. {"flog10l",    two(0xF000, 0x4015),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  937. {"flog10p",    two(0xF000, 0x4C15),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  938. {"flog10s",    two(0xF000, 0x4415),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  939. {"flog10w",    two(0xF000, 0x5015),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  940. {"flog10x",    two(0xF000, 0x0015),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  941. {"flog10x",    two(0xF000, 0x4815),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  942. {"flog10x",    two(0xF000, 0x0015),    two(0xF1C0, 0xE07F),    "IiFt"},
  943.  
  944. {"flog2b",    two(0xF000, 0x5816),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  945. {"flog2d",    two(0xF000, 0x5416),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  946. {"flog2l",    two(0xF000, 0x4016),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  947. {"flog2p",    two(0xF000, 0x4C16),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  948. {"flog2s",    two(0xF000, 0x4416),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  949. {"flog2w",    two(0xF000, 0x5016),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  950. {"flog2x",    two(0xF000, 0x0016),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  951. {"flog2x",    two(0xF000, 0x4816),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  952. {"flog2x",    two(0xF000, 0x0016),    two(0xF1C0, 0xE07F),    "IiFt"},
  953.  
  954. {"flognb",    two(0xF000, 0x5814),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  955. {"flognd",    two(0xF000, 0x5414),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  956. {"flognl",    two(0xF000, 0x4014),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  957. {"flognp",    two(0xF000, 0x4C14),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  958. {"flogns",    two(0xF000, 0x4414),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  959. {"flognw",    two(0xF000, 0x5014),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  960. {"flognx",    two(0xF000, 0x0014),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  961. {"flognx",    two(0xF000, 0x4814),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  962. {"flognx",    two(0xF000, 0x0014),    two(0xF1C0, 0xE07F),    "IiFt"},
  963.  
  964. {"flognp1b",    two(0xF000, 0x5806),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  965. {"flognp1d",    two(0xF000, 0x5406),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  966. {"flognp1l",    two(0xF000, 0x4006),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  967. {"flognp1p",    two(0xF000, 0x4C06),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  968. {"flognp1s",    two(0xF000, 0x4406),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  969. {"flognp1w",    two(0xF000, 0x5006),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  970. {"flognp1x",    two(0xF000, 0x0006),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  971. {"flognp1x",    two(0xF000, 0x4806),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  972. {"flognp1x",    two(0xF000, 0x0006),    two(0xF1C0, 0xE07F),    "IiFt"},
  973.  
  974. {"fmodb",    two(0xF000, 0x5821),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  975. {"fmodd",    two(0xF000, 0x5421),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  976. {"fmodl",    two(0xF000, 0x4021),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  977. {"fmodp",    two(0xF000, 0x4C21),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  978. {"fmods",    two(0xF000, 0x4421),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  979. {"fmodw",    two(0xF000, 0x5021),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  980. {"fmodx",    two(0xF000, 0x0021),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  981. {"fmodx",    two(0xF000, 0x4821),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  982. /* {"fmodx",    two(0xF000, 0x0021),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
  983.  
  984. {"fmoveb",    two(0xF000, 0x5800),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},        /* fmove from <ea> to fp<n> */
  985. {"fmoveb",    two(0xF000, 0x7800),    two(0xF1C0, 0xFC7F),    "IiF7@b"},        /* fmove from fp<n> to <ea> */
  986. {"fmoved",    two(0xF000, 0x5400),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},        /* fmove from <ea> to fp<n> */
  987. {"fmoved",    two(0xF000, 0x7400),    two(0xF1C0, 0xFC7F),    "IiF7@F"},        /* fmove from fp<n> to <ea> */
  988. {"fmovel",    two(0xF000, 0x4000),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},        /* fmove from <ea> to fp<n> */
  989. {"fmovel",    two(0xF000, 0x6000),    two(0xF1C0, 0xFC7F),    "IiF7@l"},        /* fmove from fp<n> to <ea> */
  990. /* Warning:  The addressing modes on these are probably not right:
  991.    esp, Areg direct is only allowed for FPI */
  992.         /* fmove.l from/to system control registers: */
  993. {"fmovel",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s"},
  994. {"fmovel",    two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*ls8"},
  995.  
  996. /* {"fmovel",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s"},
  997. {"fmovel",    two(0xF000, 0x8000),    two(0xF2C0, 0xE3FF),    "Ii*ss8"}, */
  998.  
  999. {"fmovep",    two(0xF000, 0x4C00),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},        /* fmove from <ea> to fp<n> */
  1000. {"fmovep",    two(0xF000, 0x6C00),    two(0xF1C0, 0xFC00),    "IiF7@pkC"},        /* fmove.p with k-factors: */
  1001. {"fmovep",    two(0xF000, 0x7C00),    two(0xF1C0, 0xFC0F),    "IiF7@pDk"},        /* fmove.p with k-factors: */
  1002.  
  1003. {"fmoves",    two(0xF000, 0x4400),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},        /* fmove from <ea> to fp<n> */
  1004. {"fmoves",    two(0xF000, 0x6400),    two(0xF1C0, 0xFC7F),    "IiF7@f"},        /* fmove from fp<n> to <ea> */
  1005. {"fmovew",    two(0xF000, 0x5000),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},        /* fmove from <ea> to fp<n> */
  1006. {"fmovew",    two(0xF000, 0x7000),    two(0xF1C0, 0xFC7F),    "IiF7@w"},        /* fmove from fp<n> to <ea> */
  1007. {"fmovex",    two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiF8F7"},        /* fmove from <ea> to fp<n> */
  1008. {"fmovex",    two(0xF000, 0x4800),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},        /* fmove from <ea> to fp<n> */
  1009. {"fmovex",    two(0xF000, 0x6800),    two(0xF1C0, 0xFC7F),    "IiF7@x"},        /* fmove from fp<n> to <ea> */
  1010. /* JF removed {"fmovex",    two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiFt"},        / * fmove from <ea> to fp<n> */
  1011.  
  1012. {"fmovecrx",    two(0xF000, 0x5C00),    two(0xF1FF, 0xFC00),    "Ii#CF7"},        /* fmovecr.x #ccc,    FPn */
  1013. {"fmovecr",    two(0xF000, 0x5C00),    two(0xF1FF, 0xFC00),    "Ii#CF7"},
  1014.  
  1015. /* Other fmovemx.  */
  1016. {"fmovemx",    two(0xF020, 0xE000),    two(0xF1F8, 0xFF00),    "IdL3-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  1017. {"fmovemx",    two(0xF020, 0xE000),    two(0xF1F8, 0xFF00),    "Id#3-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  1018.  
  1019. {"fmovemx",    two(0xF020, 0xE800),    two(0xF1F8, 0xFF8F),    "IiDk-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  1020.  
  1021. {"fmovemx",    two(0xF000, 0xF000),    two(0xF1C0, 0xFF00),    "Id#3&s"},        /* fmovem.x to control,    static and dynamic: */
  1022. {"fmovemx",    two(0xF000, 0xF800),    two(0xF1C0, 0xFF8F),    "IiDk&s"},        /* fmovem.x to control,    static and dynamic: */
  1023. {"fmovemx",    two(0xF000, 0xD000),    two(0xF1C0, 0xFF00),    "Id&s#3"},        /* fmovem.x from control,    static and dynamic: */
  1024. {"fmovemx",    two(0xF000, 0xD800),    two(0xF1C0, 0xFF8F),    "Ii&sDk"},        /* fmovem.x from control,    static and dynamic: */
  1025. {"fmovemx",    two(0xF000, 0xF000),    two(0xF1C0, 0xFF00),    "Idl3&s"},        /* fmovem.x to control,    static and dynamic: */
  1026. {"fmovemx",    two(0xF000, 0xD000),    two(0xF1C0, 0xFF00),    "Id&sl3"},        /* fmovem.x from control,    static and dynamic: */
  1027.  
  1028. {"fmovemx",    two(0xF018, 0xD000),    two(0xF1F8, 0xFF00),    "Id+sl3"},        /* fmovem.x from autoincrement,    static and dynamic: */
  1029. {"fmovemx",    two(0xF018, 0xD000),    two(0xF1F8, 0xFF00),    "Id+s#3"},        /* fmovem.x from autoincrement,    static and dynamic: */
  1030. {"fmovemx",    two(0xF018, 0xD800),    two(0xF1F8, 0xFF8F),    "Ii+sDk"},        /* fmovem.x from autoincrement,    static and dynamic: */
  1031.  
  1032. {"fmoveml",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "IiL8@s"},
  1033. {"fmoveml",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Ii#8@s"},
  1034. {"fmoveml",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s"},
  1035.  
  1036. {"fmoveml",    two(0xF000, 0x8000),    two(0xF2C0, 0xE3FF),    "Ii*sL8"},
  1037. {"fmoveml",    two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*s#8"},
  1038. {"fmoveml",    two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*ss8"},
  1039.  
  1040. /* fmovemx with register lists */
  1041. {"fmovem",    two(0xF020, 0xE000),    two(0xF1F8, 0xFF00),    "IdL3-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  1042. {"fmovem",    two(0xF000, 0xF000),    two(0xF1C0, 0xFF00),    "Idl3&s"},        /* fmovem.x to control,    static and dynamic: */
  1043. {"fmovem",    two(0xF018, 0xD000),    two(0xF1F8, 0xFF00),    "Id+sl3"},        /* fmovem.x from autoincrement,    static and dynamic: */
  1044. {"fmovem",    two(0xF000, 0xD000),    two(0xF1C0, 0xFF00),    "Id&sl3"},        /* fmovem.x from control,    static and dynamic: */
  1045.  
  1046.     /* Alternate mnemonics for GNU as and GNU CC */
  1047. {"fmovem",    two(0xF020, 0xE000),    two(0xF1F8, 0xFF00),    "Id#3-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  1048. {"fmovem",    two(0xF020, 0xE800),    two(0xF1F8, 0xFF8F),    "IiDk-s"},        /* fmovem.x to autodecrement,    static and dynamic */
  1049.  
  1050. {"fmovem",    two(0xF000, 0xF000),    two(0xF1C0, 0xFF00),    "Id#3&s"},        /* fmovem.x to control,    static and dynamic: */
  1051. {"fmovem",    two(0xF000, 0xF800),    two(0xF1C0, 0xFF8F),    "IiDk&s"},        /* fmovem.x to control,    static and dynamic: */
  1052.  
  1053. {"fmovem",    two(0xF018, 0xD000),    two(0xF1F8, 0xFF00),    "Id+s#3"},        /* fmovem.x from autoincrement,    static and dynamic: */
  1054. {"fmovem",    two(0xF018, 0xD800),    two(0xF1F8, 0xFF8F),    "Ii+sDk"},        /* fmovem.x from autoincrement,    static and dynamic: */
  1055.   
  1056. {"fmovem",    two(0xF000, 0xD000),    two(0xF1C0, 0xFF00),    "Id&s#3"},        /* fmovem.x from control,    static and dynamic: */
  1057. {"fmovem",    two(0xF000, 0xD800),    two(0xF1C0, 0xFF8F),    "Ii&sDk"},        /* fmovem.x from control,    static and dynamic: */
  1058.  
  1059. /* fmoveml a FP-control register */
  1060. {"fmovem",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s"},
  1061. {"fmovem",    two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*ss8"},
  1062.  
  1063. /* fmoveml a FP-control reglist */
  1064. {"fmovem",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "IiL8@s"},
  1065. {"fmovem",    two(0xF000, 0x8000),    two(0xF2C0, 0xE3FF),    "Ii*sL8"},
  1066.  
  1067. {"fmulb",    two(0xF000, 0x5823),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1068. {"fmuld",    two(0xF000, 0x5423),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1069. {"fmull",    two(0xF000, 0x4023),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1070. {"fmulp",    two(0xF000, 0x4C23),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1071. {"fmuls",    two(0xF000, 0x4423),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1072. {"fmulw",    two(0xF000, 0x5023),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1073. {"fmulx",    two(0xF000, 0x0023),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1074. {"fmulx",    two(0xF000, 0x4823),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1075. /* {"fmulx",    two(0xF000, 0x0023),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
  1076.  
  1077. {"fnegb",    two(0xF000, 0x581A),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1078. {"fnegd",    two(0xF000, 0x541A),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1079. {"fnegl",    two(0xF000, 0x401A),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1080. {"fnegp",    two(0xF000, 0x4C1A),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1081. {"fnegs",    two(0xF000, 0x441A),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1082. {"fnegw",    two(0xF000, 0x501A),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1083. {"fnegx",    two(0xF000, 0x001A),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1084. {"fnegx",    two(0xF000, 0x481A),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1085. {"fnegx",    two(0xF000, 0x001A),    two(0xF1C0, 0xE07F),    "IiFt"},
  1086.  
  1087. {"fnop",    two(0xF280, 0x0000),    two(0xFFFF, 0xFFFF),    "Ii"},
  1088.  
  1089. {"fremb",    two(0xF000, 0x5825),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1090. {"fremd",    two(0xF000, 0x5425),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1091. {"freml",    two(0xF000, 0x4025),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1092. {"fremp",    two(0xF000, 0x4C25),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1093. {"frems",    two(0xF000, 0x4425),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1094. {"fremw",    two(0xF000, 0x5025),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1095. {"fremx",    two(0xF000, 0x0025),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1096. {"fremx",    two(0xF000, 0x4825),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1097. /* {"fremx",    two(0xF000, 0x0025),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
  1098.  
  1099. {"frestore",    one(0xF140),        one(0xF1C0),        "Id&s"},
  1100. {"frestore",    one(0xF158),        one(0xF1F8),        "Id+s"},
  1101. {"fsave",    one(0xF100),        one(0xF1C0),        "Id&s"},
  1102. {"fsave",    one(0xF120),        one(0xF1F8),        "Id-s"},
  1103.  
  1104. {"fsincosb",    two(0xF000, 0x5830),    two(0xF1C0, 0xFC78),    "Ii;bF3F7"},
  1105. {"fsincosd",    two(0xF000, 0x5430),    two(0xF1C0, 0xFC78),    "Ii;FF3F7"},
  1106. {"fsincosl",    two(0xF000, 0x4030),    two(0xF1C0, 0xFC78),    "Ii;lF3F7"},
  1107. {"fsincosp",    two(0xF000, 0x4C30),    two(0xF1C0, 0xFC78),    "Ii;pF3F7"},
  1108. {"fsincoss",    two(0xF000, 0x4430),    two(0xF1C0, 0xFC78),    "Ii;fF3F7"},
  1109. {"fsincosw",    two(0xF000, 0x5030),    two(0xF1C0, 0xFC78),    "Ii;wF3F7"},
  1110. {"fsincosx",    two(0xF000, 0x0030),    two(0xF1C0, 0xE078),    "IiF8F3F7"},
  1111. {"fsincosx",    two(0xF000, 0x4830),    two(0xF1C0, 0xFC78),    "Ii;xF3F7"},
  1112.  
  1113. {"fscaleb",    two(0xF000, 0x5826),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1114. {"fscaled",    two(0xF000, 0x5426),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1115. {"fscalel",    two(0xF000, 0x4026),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1116. {"fscalep",    two(0xF000, 0x4C26),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1117. {"fscales",    two(0xF000, 0x4426),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1118. {"fscalew",    two(0xF000, 0x5026),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1119. {"fscalex",    two(0xF000, 0x0026),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1120. {"fscalex",    two(0xF000, 0x4826),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1121. /* {"fscalex",    two(0xF000, 0x0026),    two(0xF1C0, 0xE07F),    "IiFt"}, JF */
  1122.  
  1123. /* $ is necessary to prevent the assembler from using PC-relative.
  1124.    If @ were used, "label: fseq label" could produce "ftrapeq",
  1125.    because "label" became "pc@label".  */
  1126. {"fseq",    two(0xF040, 0x0001),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1127. {"fsf",        two(0xF040, 0x0000),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1128. {"fsge",    two(0xF040, 0x0013),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1129. {"fsgl",    two(0xF040, 0x0016),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1130. {"fsgle",    two(0xF040, 0x0017),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1131. {"fsgt",    two(0xF040, 0x0012),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1132. {"fsle",    two(0xF040, 0x0015),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1133. {"fslt",    two(0xF040, 0x0014),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1134. {"fsne",    two(0xF040, 0x000E),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1135. {"fsnge",    two(0xF040, 0x001C),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1136. {"fsngl",    two(0xF040, 0x0019),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1137. {"fsngle",    two(0xF040, 0x0018),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1138. {"fsngt",    two(0xF040, 0x001D),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1139. {"fsnle",    two(0xF040, 0x001A),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1140. {"fsnlt",    two(0xF040, 0x001B),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1141. {"fsoge",    two(0xF040, 0x0003),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1142. {"fsogl",    two(0xF040, 0x0006),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1143. {"fsogt",    two(0xF040, 0x0002),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1144. {"fsole",    two(0xF040, 0x0005),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1145. {"fsolt",    two(0xF040, 0x0004),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1146. {"fsor",    two(0xF040, 0x0007),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1147. {"fsseq",    two(0xF040, 0x0011),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1148. {"fssf",    two(0xF040, 0x0010),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1149. {"fssne",    two(0xF040, 0x001E),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1150. {"fsst",    two(0xF040, 0x001F),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1151. {"fst",        two(0xF040, 0x000F),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1152. {"fsueq",    two(0xF040, 0x0009),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1153. {"fsuge",    two(0xF040, 0x000B),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1154. {"fsugt",    two(0xF040, 0x000A),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1155. {"fsule",    two(0xF040, 0x000D),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1156. {"fsult",    two(0xF040, 0x000C),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1157. {"fsun",    two(0xF040, 0x0008),    two(0xF1C0, 0xFFFF),    "Ii$s"},
  1158.  
  1159. {"fsgldivb",    two(0xF000, 0x5824),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1160. {"fsgldivd",    two(0xF000, 0x5424),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1161. {"fsgldivl",    two(0xF000, 0x4024),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1162. {"fsgldivp",    two(0xF000, 0x4C24),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1163. {"fsgldivs",    two(0xF000, 0x4424),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1164. {"fsgldivw",    two(0xF000, 0x5024),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1165. {"fsgldivx",    two(0xF000, 0x0024),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1166. {"fsgldivx",    two(0xF000, 0x4824),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1167. {"fsgldivx",    two(0xF000, 0x0024),    two(0xF1C0, 0xE07F),    "IiFt"},
  1168.  
  1169. {"fsglmulb",    two(0xF000, 0x5827),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1170. {"fsglmuld",    two(0xF000, 0x5427),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1171. {"fsglmull",    two(0xF000, 0x4027),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1172. {"fsglmulp",    two(0xF000, 0x4C27),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1173. {"fsglmuls",    two(0xF000, 0x4427),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1174. {"fsglmulw",    two(0xF000, 0x5027),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1175. {"fsglmulx",    two(0xF000, 0x0027),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1176. {"fsglmulx",    two(0xF000, 0x4827),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1177. {"fsglmulx",    two(0xF000, 0x0027),    two(0xF1C0, 0xE07F),    "IiFt"},
  1178.  
  1179. {"fsinb",    two(0xF000, 0x580E),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1180. {"fsind",    two(0xF000, 0x540E),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1181. {"fsinl",    two(0xF000, 0x400E),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1182. {"fsinp",    two(0xF000, 0x4C0E),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1183. {"fsins",    two(0xF000, 0x440E),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1184. {"fsinw",    two(0xF000, 0x500E),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1185. {"fsinx",    two(0xF000, 0x000E),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1186. {"fsinx",    two(0xF000, 0x480E),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1187. {"fsinx",    two(0xF000, 0x000E),    two(0xF1C0, 0xE07F),    "IiFt"},
  1188.  
  1189. {"fsinhb",    two(0xF000, 0x5802),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1190. {"fsinhd",    two(0xF000, 0x5402),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1191. {"fsinhl",    two(0xF000, 0x4002),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1192. {"fsinhp",    two(0xF000, 0x4C02),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1193. {"fsinhs",    two(0xF000, 0x4402),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1194. {"fsinhw",    two(0xF000, 0x5002),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1195. {"fsinhx",    two(0xF000, 0x0002),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1196. {"fsinhx",    two(0xF000, 0x4802),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1197. {"fsinhx",    two(0xF000, 0x0002),    two(0xF1C0, 0xE07F),    "IiFt"},
  1198.  
  1199. {"fsqrtb",    two(0xF000, 0x5804),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1200. {"fsqrtd",    two(0xF000, 0x5404),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1201. {"fsqrtl",    two(0xF000, 0x4004),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1202. {"fsqrtp",    two(0xF000, 0x4C04),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1203. {"fsqrts",    two(0xF000, 0x4404),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1204. {"fsqrtw",    two(0xF000, 0x5004),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1205. {"fsqrtx",    two(0xF000, 0x0004),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1206. {"fsqrtx",    two(0xF000, 0x4804),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1207. {"fsqrtx",    two(0xF000, 0x0004),    two(0xF1C0, 0xE07F),    "IiFt"},
  1208.  
  1209. {"fsubb",    two(0xF000, 0x5828),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1210. {"fsubd",    two(0xF000, 0x5428),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1211. {"fsubl",    two(0xF000, 0x4028),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1212. {"fsubp",    two(0xF000, 0x4C28),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1213. {"fsubs",    two(0xF000, 0x4428),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1214. {"fsubw",    two(0xF000, 0x5028),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1215. {"fsubx",    two(0xF000, 0x0028),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1216. {"fsubx",    two(0xF000, 0x4828),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1217. /* {"fsubx",    two(0xF000, 0x0028),    two(0xF1C0, 0xE07F),    "IiFt"}, Shin removed */
  1218.  
  1219. {"ftanb",    two(0xF000, 0x580F),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1220. {"ftand",    two(0xF000, 0x540F),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1221. {"ftanl",    two(0xF000, 0x400F),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1222. {"ftanp",    two(0xF000, 0x4C0F),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1223. {"ftans",    two(0xF000, 0x440F),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1224. {"ftanw",    two(0xF000, 0x500F),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1225. {"ftanx",    two(0xF000, 0x000F),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1226. {"ftanx",    two(0xF000, 0x480F),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1227. {"ftanx",    two(0xF000, 0x000F),    two(0xF1C0, 0xE07F),    "IiFt"},
  1228.  
  1229. {"ftanhb",    two(0xF000, 0x5809),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1230. {"ftanhd",    two(0xF000, 0x5409),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1231. {"ftanhl",    two(0xF000, 0x4009),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1232. {"ftanhp",    two(0xF000, 0x4C09),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1233. {"ftanhs",    two(0xF000, 0x4409),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1234. {"ftanhw",    two(0xF000, 0x5009),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1235. {"ftanhx",    two(0xF000, 0x0009),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1236. {"ftanhx",    two(0xF000, 0x4809),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1237. {"ftanhx",    two(0xF000, 0x0009),    two(0xF1C0, 0xE07F),    "IiFt"},
  1238.  
  1239. {"ftentoxb",    two(0xF000, 0x5812),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1240. {"ftentoxd",    two(0xF000, 0x5412),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1241. {"ftentoxl",    two(0xF000, 0x4012),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1242. {"ftentoxp",    two(0xF000, 0x4C12),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1243. {"ftentoxs",    two(0xF000, 0x4412),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1244. {"ftentoxw",    two(0xF000, 0x5012),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1245. {"ftentoxx",    two(0xF000, 0x0012),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1246. {"ftentoxx",    two(0xF000, 0x4812),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1247. {"ftentoxx",    two(0xF000, 0x0012),    two(0xF1C0, 0xE07F),    "IiFt"},
  1248.  
  1249. {"ftrapeq",    two(0xF07C, 0x0001),    two(0xF1FF, 0xFFFF),    "Ii"},
  1250. {"ftrapf",    two(0xF07C, 0x0000),    two(0xF1FF, 0xFFFF),    "Ii"},
  1251. {"ftrapge",    two(0xF07C, 0x0013),    two(0xF1FF, 0xFFFF),    "Ii"},
  1252. {"ftrapgl",    two(0xF07C, 0x0016),    two(0xF1FF, 0xFFFF),    "Ii"},
  1253. {"ftrapgle",    two(0xF07C, 0x0017),    two(0xF1FF, 0xFFFF),    "Ii"},
  1254. {"ftrapgt",    two(0xF07C, 0x0012),    two(0xF1FF, 0xFFFF),    "Ii"},
  1255. {"ftraple",    two(0xF07C, 0x0015),    two(0xF1FF, 0xFFFF),    "Ii"},
  1256. {"ftraplt",    two(0xF07C, 0x0014),    two(0xF1FF, 0xFFFF),    "Ii"},
  1257. {"ftrapne",    two(0xF07C, 0x000E),    two(0xF1FF, 0xFFFF),    "Ii"},
  1258. {"ftrapnge",    two(0xF07C, 0x001C),    two(0xF1FF, 0xFFFF),    "Ii"},
  1259. {"ftrapngl",    two(0xF07C, 0x0019),    two(0xF1FF, 0xFFFF),    "Ii"},
  1260. {"ftrapngle",    two(0xF07C, 0x0018),    two(0xF1FF, 0xFFFF),    "Ii"},
  1261. {"ftrapngt",    two(0xF07C, 0x001D),    two(0xF1FF, 0xFFFF),    "Ii"},
  1262. {"ftrapnle",    two(0xF07C, 0x001A),    two(0xF1FF, 0xFFFF),    "Ii"},
  1263. {"ftrapnlt",    two(0xF07C, 0x001B),    two(0xF1FF, 0xFFFF),    "Ii"},
  1264. {"ftrapoge",    two(0xF07C, 0x0003),    two(0xF1FF, 0xFFFF),    "Ii"},
  1265. {"ftrapogl",    two(0xF07C, 0x0006),    two(0xF1FF, 0xFFFF),    "Ii"},
  1266. {"ftrapogt",    two(0xF07C, 0x0002),    two(0xF1FF, 0xFFFF),    "Ii"},
  1267. {"ftrapole",    two(0xF07C, 0x0005),    two(0xF1FF, 0xFFFF),    "Ii"},
  1268. {"ftrapolt",    two(0xF07C, 0x0004),    two(0xF1FF, 0xFFFF),    "Ii"},
  1269. {"ftrapor",    two(0xF07C, 0x0007),    two(0xF1FF, 0xFFFF),    "Ii"},
  1270. {"ftrapseq",    two(0xF07C, 0x0011),    two(0xF1FF, 0xFFFF),    "Ii"},
  1271. {"ftrapsf",    two(0xF07C, 0x0010),    two(0xF1FF, 0xFFFF),    "Ii"},
  1272. {"ftrapsne",    two(0xF07C, 0x001E),    two(0xF1FF, 0xFFFF),    "Ii"},
  1273. {"ftrapst",    two(0xF07C, 0x001F),    two(0xF1FF, 0xFFFF),    "Ii"},
  1274. {"ftrapt",    two(0xF07C, 0x000F),    two(0xF1FF, 0xFFFF),    "Ii"},
  1275. {"ftrapueq",    two(0xF07C, 0x0009),    two(0xF1FF, 0xFFFF),    "Ii"},
  1276. {"ftrapuge",    two(0xF07C, 0x000B),    two(0xF1FF, 0xFFFF),    "Ii"},
  1277. {"ftrapugt",    two(0xF07C, 0x000A),    two(0xF1FF, 0xFFFF),    "Ii"},
  1278. {"ftrapule",    two(0xF07C, 0x000D),    two(0xF1FF, 0xFFFF),    "Ii"},
  1279. {"ftrapult",    two(0xF07C, 0x000C),    two(0xF1FF, 0xFFFF),    "Ii"},
  1280. {"ftrapun",    two(0xF07C, 0x0008),    two(0xF1FF, 0xFFFF),    "Ii"},
  1281.         
  1282. {"ftrapeqw",    two(0xF07A, 0x0001),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1283. {"ftrapfw",    two(0xF07A, 0x0000),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1284. {"ftrapgew",    two(0xF07A, 0x0013),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1285. {"ftrapglw",    two(0xF07A, 0x0016),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1286. {"ftrapglew",    two(0xF07A, 0x0017),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1287. {"ftrapgtw",    two(0xF07A, 0x0012),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1288. {"ftraplew",    two(0xF07A, 0x0015),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1289. {"ftrapltw",    two(0xF07A, 0x0014),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1290. {"ftrapnew",    two(0xF07A, 0x000E),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1291. {"ftrapngew",    two(0xF07A, 0x001C),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1292. {"ftrapnglw",    two(0xF07A, 0x0019),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1293. {"ftrapnglew",    two(0xF07A, 0x0018),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1294. {"ftrapngtw",    two(0xF07A, 0x001D),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1295. {"ftrapnlew",    two(0xF07A, 0x001A),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1296. {"ftrapnltw",    two(0xF07A, 0x001B),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1297. {"ftrapogew",    two(0xF07A, 0x0003),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1298. {"ftrapoglw",    two(0xF07A, 0x0006),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1299. {"ftrapogtw",    two(0xF07A, 0x0002),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1300. {"ftrapolew",    two(0xF07A, 0x0005),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1301. {"ftrapoltw",    two(0xF07A, 0x0004),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1302. {"ftraporw",    two(0xF07A, 0x0007),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1303. {"ftrapseqw",    two(0xF07A, 0x0011),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1304. {"ftrapsfw",    two(0xF07A, 0x0010),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1305. {"ftrapsnew",    two(0xF07A, 0x001E),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1306. {"ftrapstw",    two(0xF07A, 0x001F),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1307. {"ftraptw",    two(0xF07A, 0x000F),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1308. {"ftrapueqw",    two(0xF07A, 0x0009),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1309. {"ftrapugew",    two(0xF07A, 0x000B),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1310. {"ftrapugtw",    two(0xF07A, 0x000A),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1311. {"ftrapulew",    two(0xF07A, 0x000D),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1312. {"ftrapultw",    two(0xF07A, 0x000C),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1313. {"ftrapunw",    two(0xF07A, 0x0008),    two(0xF1FF, 0xFFFF),    "Ii^w"},
  1314.  
  1315. {"ftrapeql",    two(0xF07B, 0x0001),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1316. {"ftrapfl",    two(0xF07B, 0x0000),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1317. {"ftrapgel",    two(0xF07B, 0x0013),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1318. {"ftrapgll",    two(0xF07B, 0x0016),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1319. {"ftrapglel",    two(0xF07B, 0x0017),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1320. {"ftrapgtl",    two(0xF07B, 0x0012),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1321. {"ftraplel",    two(0xF07B, 0x0015),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1322. {"ftrapltl",    two(0xF07B, 0x0014),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1323. {"ftrapnel",    two(0xF07B, 0x000E),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1324. {"ftrapngel",    two(0xF07B, 0x001C),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1325. {"ftrapngll",    two(0xF07B, 0x0019),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1326. {"ftrapnglel",    two(0xF07B, 0x0018),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1327. {"ftrapngtl",    two(0xF07B, 0x001D),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1328. {"ftrapnlel",    two(0xF07B, 0x001A),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1329. {"ftrapnltl",    two(0xF07B, 0x001B),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1330. {"ftrapogel",    two(0xF07B, 0x0003),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1331. {"ftrapogll",    two(0xF07B, 0x0006),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1332. {"ftrapogtl",    two(0xF07B, 0x0002),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1333. {"ftrapolel",    two(0xF07B, 0x0005),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1334. {"ftrapoltl",    two(0xF07B, 0x0004),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1335. {"ftraporl",    two(0xF07B, 0x0007),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1336. {"ftrapseql",    two(0xF07B, 0x0011),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1337. {"ftrapsfl",    two(0xF07B, 0x0010),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1338. {"ftrapsnel",    two(0xF07B, 0x001E),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1339. {"ftrapstl",    two(0xF07B, 0x001F),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1340. {"ftraptl",    two(0xF07B, 0x000F),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1341. {"ftrapueql",    two(0xF07B, 0x0009),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1342. {"ftrapugel",    two(0xF07B, 0x000B),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1343. {"ftrapugtl",    two(0xF07B, 0x000A),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1344. {"ftrapulel",    two(0xF07B, 0x000D),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1345. {"ftrapultl",    two(0xF07B, 0x000C),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1346. {"ftrapunl",    two(0xF07B, 0x0008),    two(0xF1FF, 0xFFFF),    "Ii^l"},
  1347.  
  1348. {"ftstb",    two(0xF000, 0x583A),    two(0xF1C0, 0xFC7F),    "Ii;b"},
  1349. {"ftstd",    two(0xF000, 0x543A),    two(0xF1C0, 0xFC7F),    "Ii;F"},
  1350. {"ftstl",    two(0xF000, 0x403A),    two(0xF1C0, 0xFC7F),    "Ii;l"},
  1351. {"ftstp",    two(0xF000, 0x4C3A),    two(0xF1C0, 0xFC7F),    "Ii;p"},
  1352. {"ftsts",    two(0xF000, 0x443A),    two(0xF1C0, 0xFC7F),    "Ii;f"},
  1353. {"ftstw",    two(0xF000, 0x503A),    two(0xF1C0, 0xFC7F),    "Ii;w"},
  1354. {"ftstx",    two(0xF000, 0x003A),    two(0xF1C0, 0xE07F),    "IiF8"},
  1355. {"ftstx",    two(0xF000, 0x483A),    two(0xF1C0, 0xFC7F),    "Ii;x"},
  1356.  
  1357. {"ftwotoxb",    two(0xF000, 0x5811),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1358. {"ftwotoxd",    two(0xF000, 0x5411),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1359. {"ftwotoxl",    two(0xF000, 0x4011),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1360. {"ftwotoxp",    two(0xF000, 0x4C11),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1361. {"ftwotoxs",    two(0xF000, 0x4411),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1362. {"ftwotoxw",    two(0xF000, 0x5011),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1363. {"ftwotoxx",    two(0xF000, 0x0011),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1364. {"ftwotoxx",    two(0xF000, 0x4811),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1365. {"ftwotoxx",    two(0xF000, 0x0011),    two(0xF1C0, 0xE07F),    "IiFt"},
  1366.  
  1367.  
  1368. {"fjeq",    one(0xF081),        one(0xF1FF),        "IdBc"},
  1369. {"fjf",        one(0xF080),        one(0xF1FF),        "IdBc"},
  1370. {"fjge",    one(0xF093),        one(0xF1FF),        "IdBc"},
  1371. {"fjgl",    one(0xF096),        one(0xF1FF),        "IdBc"},
  1372. {"fjgle",    one(0xF097),        one(0xF1FF),        "IdBc"},
  1373. {"fjgt",    one(0xF092),        one(0xF1FF),        "IdBc"},
  1374. {"fjle",    one(0xF095),        one(0xF1FF),        "IdBc"},
  1375. {"fjlt",    one(0xF094),        one(0xF1FF),        "IdBc"},
  1376. {"fjne",    one(0xF08E),        one(0xF1FF),        "IdBc"},
  1377. {"fjnge",    one(0xF09C),        one(0xF1FF),        "IdBc"},
  1378. {"fjngl",    one(0xF099),        one(0xF1FF),        "IdBc"},
  1379. {"fjngle",    one(0xF098),        one(0xF1FF),        "IdBc"},
  1380. {"fjngt",    one(0xF09D),        one(0xF1FF),        "IdBc"},
  1381. {"fjnle",    one(0xF09A),        one(0xF1FF),        "IdBc"},
  1382. {"fjnlt",    one(0xF09B),        one(0xF1FF),        "IdBc"},
  1383. {"fjoge",    one(0xF083),        one(0xF1FF),        "IdBc"},
  1384. {"fjogl",    one(0xF086),        one(0xF1FF),        "IdBc"},
  1385. {"fjogt",    one(0xF082),        one(0xF1FF),        "IdBc"},
  1386. {"fjole",    one(0xF085),        one(0xF1FF),        "IdBc"},
  1387. {"fjolt",    one(0xF084),        one(0xF1FF),        "IdBc"},
  1388. {"fjor",    one(0xF087),        one(0xF1FF),        "IdBc"},
  1389. {"fjseq",    one(0xF091),        one(0xF1FF),        "IdBc"},
  1390. {"fjsf",    one(0xF090),        one(0xF1FF),        "IdBc"},
  1391. {"fjsne",    one(0xF09E),        one(0xF1FF),        "IdBc"},
  1392. {"fjst",    one(0xF09F),        one(0xF1FF),        "IdBc"},
  1393. {"fjt",        one(0xF08F),        one(0xF1FF),        "IdBc"},
  1394. {"fjueq",    one(0xF089),        one(0xF1FF),        "IdBc"},
  1395. {"fjuge",    one(0xF08B),        one(0xF1FF),        "IdBc"},
  1396. {"fjugt",    one(0xF08A),        one(0xF1FF),        "IdBc"},
  1397. {"fjule",    one(0xF08D),        one(0xF1FF),        "IdBc"},
  1398. {"fjult",    one(0xF08C),        one(0xF1FF),        "IdBc"},
  1399. {"fjun",    one(0xF088),        one(0xF1FF),        "IdBc"},
  1400.  
  1401. /* The assembler will ignore attempts to force a short offset */
  1402.  
  1403. {"bhis",    one(0061000),        one(0177400),        "Bg"},
  1404. {"blss",    one(0061400),        one(0177400),        "Bg"},
  1405. {"bccs",    one(0062000),        one(0177400),        "Bg"},
  1406. {"bcss",    one(0062400),        one(0177400),        "Bg"},
  1407. {"bnes",    one(0063000),        one(0177400),        "Bg"},
  1408. {"beqs",    one(0063400),        one(0177400),        "Bg"},
  1409. {"bvcs",    one(0064000),        one(0177400),        "Bg"},
  1410. {"bvss",    one(0064400),        one(0177400),        "Bg"},
  1411. {"bpls",    one(0065000),        one(0177400),        "Bg"},
  1412. {"bmis",    one(0065400),        one(0177400),        "Bg"},
  1413. {"bges",    one(0066000),        one(0177400),        "Bg"},
  1414. {"blts",    one(0066400),        one(0177400),        "Bg"},
  1415. {"bgts",    one(0067000),        one(0177400),        "Bg"},
  1416. {"bles",    one(0067400),        one(0177400),        "Bg"},
  1417.  
  1418. /* Alternate mnemonics for SUN */
  1419.  
  1420. #if (!(CROSSATARI || atarist || atariminix))
  1421. {"jbsr",    one(0060400),        one(0177400),        "Bg"},
  1422. #endif
  1423. {"jbsr",    one(0047200),        one(0177700),        "!s"},
  1424. {"jra",        one(0060000),        one(0177400),        "Bg"},
  1425. {"jra",        one(0047300),        one(0177700),        "!s"},
  1426.   
  1427. {"jhi",        one(0061000),        one(0177400),        "Bg"},
  1428. {"jls",        one(0061400),        one(0177400),        "Bg"},
  1429. {"jcc",        one(0062000),        one(0177400),        "Bg"},
  1430. {"jcs",        one(0062400),        one(0177400),        "Bg"},
  1431. {"jne",        one(0063000),        one(0177400),        "Bg"},
  1432. {"jeq",        one(0063400),        one(0177400),        "Bg"},
  1433. {"jvc",        one(0064000),        one(0177400),        "Bg"},
  1434. {"jvs",        one(0064400),        one(0177400),        "Bg"},
  1435. {"jpl",        one(0065000),        one(0177400),        "Bg"},
  1436. {"jmi",        one(0065400),        one(0177400),        "Bg"},
  1437. {"jge",        one(0066000),        one(0177400),        "Bg"},
  1438. {"jlt",        one(0066400),        one(0177400),        "Bg"},
  1439. {"jgt",        one(0067000),        one(0177400),        "Bg"},
  1440. {"jle",        one(0067400),        one(0177400),        "Bg"},
  1441.  
  1442. /* Short offsets are ignored */
  1443.  
  1444. {"jbsrs",    one(0060400),        one(0177400),        "Bg"},
  1445. {"jras",    one(0060000),        one(0177400),        "Bg"},
  1446. {"jhis",    one(0061000),        one(0177400),        "Bg"},
  1447. {"jlss",    one(0061400),        one(0177400),        "Bg"},
  1448. {"jccs",    one(0062000),        one(0177400),        "Bg"},
  1449. {"jcss",    one(0062400),        one(0177400),        "Bg"},
  1450. {"jnes",    one(0063000),        one(0177400),        "Bg"},
  1451. {"jeqs",    one(0063400),        one(0177400),        "Bg"},
  1452. {"jvcs",    one(0064000),        one(0177400),        "Bg"},
  1453. {"jvss",    one(0064400),        one(0177400),        "Bg"},
  1454. {"jpls",    one(0065000),        one(0177400),        "Bg"},
  1455. {"jmis",    one(0065400),        one(0177400),        "Bg"},
  1456. {"jges",    one(0066000),        one(0177400),        "Bg"},
  1457. {"jlts",    one(0066400),        one(0177400),        "Bg"},
  1458. {"jgts",    one(0067000),        one(0177400),        "Bg"},
  1459. {"jles",    one(0067400),        one(0177400),        "Bg"},
  1460.  
  1461. {"movql",    one(0070000),        one(0170400),        "MsDd"},
  1462. {"moveql",    one(0070000),        one(0170400),        "MsDd"},
  1463. {"moval",    one(0020100),        one(0170700),        "*lAd"},
  1464. {"movaw",    one(0030100),        one(0170700),        "*wAd"},
  1465. {"movb",    one(0010000),        one(0170000),        ";b$d"},    /* mov */
  1466. {"movl",    one(0070000),        one(0170400),        "MsDd"},    /* movq written as mov */
  1467. {"movl",    one(0020000),        one(0170000),        "*l$d"},
  1468. {"movl",    one(0020100),        one(0170700),        "*lAd"},
  1469. {"movl",    one(0047140),        one(0177770),        "AsUd"},    /* mov to USP */
  1470. {"movl",    one(0047150),        one(0177770),        "UdAs"},    /* mov from USP */
  1471. {"movc",    one(0047173),        one(0177777),        "R1Jj"},
  1472. {"movc",    one(0047173),        one(0177777),        "R1#j"},
  1473. {"movc",    one(0047172),        one(0177777),        "JjR1"},
  1474. {"movc",    one(0047172),        one(0177777),        "#jR1"},
  1475. {"movml",    one(0044300),        one(0177700),        "#w&s"},    /* movm reg to mem. */
  1476. {"movml",    one(0044340),        one(0177770),        "#w-s"},    /* movm reg to autodecrement. */
  1477. {"movml",    one(0046300),        one(0177700),        "!s#w"},    /* movm mem to reg. */
  1478. {"movml",    one(0046330),        one(0177770),        "+s#w"},    /* movm autoinc to reg. */
  1479. {"movml",    one(0044300),        one(0177700),        "Lw&s"},    /* movm reg to mem. */
  1480. {"movml",    one(0044340),        one(0177770),        "lw-s"},    /* movm reg to autodecrement. */
  1481. {"movml",    one(0046300),        one(0177700),        "!sLw"},    /* movm mem to reg. */
  1482. {"movml",    one(0046330),        one(0177770),        "+sLw"},    /* movm autoinc to reg. */
  1483. {"movmw",    one(0044200),        one(0177700),        "#w&s"},    /* movm reg to mem. */
  1484. {"movmw",    one(0044240),        one(0177770),        "#w-s"},    /* movm reg to autodecrement. */
  1485. {"movmw",    one(0046200),        one(0177700),        "!s#w"},    /* movm mem to reg. */
  1486. {"movmw",    one(0046230),        one(0177770),        "+s#w"},    /* movm autoinc to reg. */
  1487. {"movmw",    one(0044200),        one(0177700),        "Lw&s"},    /* movm reg to mem. */
  1488. {"movmw",    one(0044240),        one(0177770),        "lw-s"},    /* movm reg to autodecrement. */
  1489. {"movmw",    one(0046200),        one(0177700),        "!sLw"},    /* movm mem to reg. */
  1490. {"movmw",    one(0046230),        one(0177770),        "+sLw"},    /* movm autoinc to reg. */
  1491. {"movpl",    one(0000510),        one(0170770),        "dsDd"},    /* memory to register */
  1492. {"movpl",    one(0000710),        one(0170770),        "Ddds"},    /* register to memory */
  1493. {"movpw",    one(0000410),        one(0170770),        "dsDd"},    /* memory to register */
  1494. {"movpw",    one(0000610),        one(0170770),        "Ddds"},    /* register to memory */
  1495. {"movq",    one(0070000),        one(0170400),        "MsDd"},
  1496. {"movw",    one(0030000),        one(0170000),        "*w$d"},
  1497. {"movw",    one(0030100),        one(0170700),        "*wAd"},    /* mova,    written as mov */
  1498. {"movw",    one(0040300),        one(0177700),        "Ss$s"},    /* Move from sr */
  1499. {"movw",    one(0041300),        one(0177700),        "Cs$s"},    /* Move from ccr */
  1500. {"movw",    one(0042300),        one(0177700),        ";wCd"},    /* mov to ccr */
  1501. {"movw",    one(0043300),        one(0177700),        ";wSd"},    /* mov to sr */
  1502.  
  1503. {"movsb",    two(0007000, 0),    two(0177700, 07777),    "~sR1"},
  1504. {"movsb",    two(0007000, 04000),    two(0177700, 07777),    "R1~s"},
  1505. {"movsl",    two(0007200, 0),    two(0177700, 07777),    "~sR1"},
  1506. {"movsl",    two(0007200, 04000),    two(0177700, 07777),    "R1~s"},
  1507. {"movsw",    two(0007100, 0),    two(0177700, 07777),    "~sR1"},
  1508. {"movsw",    two(0007100, 04000),    two(0177700, 07777),    "R1~s"},
  1509.  
  1510. #ifdef m68040
  1511. {"mov16",    two(0173040, 0100000),    two(0177770, 0100000),    "+s+1"},
  1512. {"mov16",    one(0173000),        one(0177770),        "+s#l"},
  1513. {"mov16",    one(0173010),        one(0177770),        "#l+s"},
  1514. {"mov16",    one(0173020),        one(0177770),        "as#l"},
  1515. {"mov16",    one(0173030),        one(0177770),        "#las"},
  1516.  
  1517. {"cinvl",    one(0172010),        one(0177470),        "c9as"},
  1518. {"cinvp",    one(0172020),        one(0177470),        "c9as"},
  1519. {"cinva",    one(0172030),        one(0177470),        "c9"},
  1520.  
  1521. {"cpushl",    one(0172050),        one(0177470),        "c9as"},
  1522. {"cpushp",    one(0172060),        one(0177470),        "c9as"},
  1523. {"cpusha",    one(0172070),        one(0177470),        "c9"},
  1524.  
  1525. {"pflushn",    one(0172400),        one(0177770),        "as"},
  1526. {"pflush",    one(0172410),        one(0177770),        "as"},
  1527. {"pflushan",    one(0172420),        one(0177770),        ""},
  1528. {"pflusha",    one(0172430),        one(0177770),        ""},
  1529.  
  1530. {"ptestw",    one(0172510),        one(0177770),        "as"},
  1531. {"ptestr",    one(0172550),        one(0177770),        "as"},
  1532.  
  1533. {"fsaddb",    two(0xF000, 0x5862),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1534. {"fsaddd",    two(0xF000, 0x5462),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1535. {"fsaddl",    two(0xF000, 0x4062),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1536. {"fsaddp",    two(0xF000, 0x4C62),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1537. {"fsadds",    two(0xF000, 0x4462),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1538. {"fsaddw",    two(0xF000, 0x5062),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1539. {"fsaddx",    two(0xF000, 0x0062),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1540. {"fsaddx",    two(0xF000, 0x4862),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1541.  
  1542. {"fdaddb",    two(0xF000, 0x5866),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1543. {"fdaddd",    two(0xF000, 0x5466),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1544. {"fdaddl",    two(0xF000, 0x4066),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1545. {"fdaddp",    two(0xF000, 0x4C66),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1546. {"fdadds",    two(0xF000, 0x4466),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1547. {"fdaddw",    two(0xF000, 0x5066),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1548. {"fdaddx",    two(0xF000, 0x0066),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1549. {"fdaddx",    two(0xF000, 0x4866),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1550.  
  1551. {"fssubb",    two(0xF000, 0x5868),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1552. {"fssubd",    two(0xF000, 0x5468),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1553. {"fssubl",    two(0xF000, 0x4068),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1554. {"fssubp",    two(0xF000, 0x4C68),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1555. {"fssubs",    two(0xF000, 0x4468),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1556. {"fssubw",    two(0xF000, 0x5068),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1557. {"fssubx",    two(0xF000, 0x0068),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1558. {"fssubx",    two(0xF000, 0x4868),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1559.  
  1560. {"fdsubb",    two(0xF000, 0x586C),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1561. {"fdsubd",    two(0xF000, 0x546C),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1562. {"fdsubl",    two(0xF000, 0x406C),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1563. {"fdsubp",    two(0xF000, 0x4C6C),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1564. {"fdsubs",    two(0xF000, 0x446C),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1565. {"fdsubw",    two(0xF000, 0x506C),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1566. {"fdsubx",    two(0xF000, 0x006C),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1567. {"fdsubx",    two(0xF000, 0x486C),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1568.  
  1569. {"fsmulb",    two(0xF000, 0x5863),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1570. {"fsmuld",    two(0xF000, 0x5463),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1571. {"fsmull",    two(0xF000, 0x4063),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1572. {"fsmulp",    two(0xF000, 0x4C63),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1573. {"fsmuls",    two(0xF000, 0x4463),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1574. {"fsmulw",    two(0xF000, 0x5063),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1575. {"fsmulx",    two(0xF000, 0x0063),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1576. {"fsmulx",    two(0xF000, 0x4863),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1577.  
  1578. {"fdmulb",    two(0xF000, 0x5867),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1579. {"fdmuld",    two(0xF000, 0x5467),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1580. {"fdmull",    two(0xF000, 0x4067),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1581. {"fdmulp",    two(0xF000, 0x4C67),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1582. {"fdmuls",    two(0xF000, 0x4467),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1583. {"fdmulw",    two(0xF000, 0x5067),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1584. {"fdmulx",    two(0xF000, 0x0067),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1585. {"fdmulx",    two(0xF000, 0x4867),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1586.  
  1587. {"fsdivb",    two(0xF000, 0x5860),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1588. {"fsdivd",    two(0xF000, 0x5460),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1589. {"fsdivl",    two(0xF000, 0x4060),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1590. {"fsdivp",    two(0xF000, 0x4C60),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1591. {"fsdivs",    two(0xF000, 0x4460),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1592. {"fsdivw",    two(0xF000, 0x5060),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1593. {"fsdivx",    two(0xF000, 0x0060),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1594. {"fsdivx",    two(0xF000, 0x4860),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1595.  
  1596. {"fddivb",    two(0xF000, 0x5864),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1597. {"fddivd",    two(0xF000, 0x5464),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1598. {"fddivl",    two(0xF000, 0x4064),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1599. {"fddivp",    two(0xF000, 0x4C64),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1600. {"fddivs",    two(0xF000, 0x4464),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1601. {"fddivw",    two(0xF000, 0x5064),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1602. {"fddivx",    two(0xF000, 0x0064),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1603. {"fddivx",    two(0xF000, 0x4864),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1604.  
  1605. {"fsabsb",    two(0xF000, 0x5858),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1606. {"fsabsd",    two(0xF000, 0x5458),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1607. {"fsabsl",    two(0xF000, 0x4058),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1608. {"fsabsp",    two(0xF000, 0x4C58),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1609. {"fsabss",    two(0xF000, 0x4458),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1610. {"fsabsw",    two(0xF000, 0x5058),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1611. {"fsabsx",    two(0xF000, 0x0058),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1612. {"fsabsx",    two(0xF000, 0x4858),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1613. {"fsabsx",    two(0xF000, 0x0058),    two(0xF1C0, 0xE07F),    "IiFt"},
  1614.  
  1615. {"fdabsb",    two(0xF000, 0x585C),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1616. {"fdabsd",    two(0xF000, 0x545C),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1617. {"fdabsl",    two(0xF000, 0x405C),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1618. {"fdabsp",    two(0xF000, 0x4C5C),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1619. {"fdabss",    two(0xF000, 0x445C),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1620. {"fdabsw",    two(0xF000, 0x505C),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1621. {"fdabsx",    two(0xF000, 0x005C),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1622. {"fdabsx",    two(0xF000, 0x485C),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1623. {"fdabsx",    two(0xF000, 0x005C),    two(0xF1C0, 0xE07F),    "IiFt"},
  1624.  
  1625. {"fsnegb",    two(0xF000, 0x585A),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1626. {"fsnegd",    two(0xF000, 0x545A),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1627. {"fsnegl",    two(0xF000, 0x405A),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1628. {"fsnegp",    two(0xF000, 0x4C5A),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1629. {"fsnegs",    two(0xF000, 0x445A),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1630. {"fsnegw",    two(0xF000, 0x505A),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1631. {"fsnegx",    two(0xF000, 0x005A),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1632. {"fsnegx",    two(0xF000, 0x485A),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1633. {"fsnegx",    two(0xF000, 0x005A),    two(0xF1C0, 0xE07F),    "IiFt"},
  1634.  
  1635. {"fdnegb",    two(0xF000, 0x585E),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1636. {"fdnegd",    two(0xF000, 0x545E),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1637. {"fdnegl",    two(0xF000, 0x405E),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1638. {"fdnegp",    two(0xF000, 0x4C5E),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1639. {"fdnegs",    two(0xF000, 0x445E),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1640. {"fdnegw",    two(0xF000, 0x505E),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1641. {"fdnegx",    two(0xF000, 0x005E),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1642. {"fdnegx",    two(0xF000, 0x485E),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1643. {"fdnegx",    two(0xF000, 0x005E),    two(0xF1C0, 0xE07F),    "IiFt"},
  1644.  
  1645. {"fssqrtb",    two(0xF000, 0x5841),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1646. {"fssqrtd",    two(0xF000, 0x5441),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1647. {"fssqrtl",    two(0xF000, 0x4041),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1648. {"fssqrtp",    two(0xF000, 0x4C41),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1649. {"fssqrts",    two(0xF000, 0x4441),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1650. {"fssqrtw",    two(0xF000, 0x5041),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1651. {"fssqrtx",    two(0xF000, 0x0041),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1652. {"fssqrtx",    two(0xF000, 0x4841),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1653. {"fssqrtx",    two(0xF000, 0x0041),    two(0xF1C0, 0xE07F),    "IiFt"},
  1654.  
  1655. {"fdsqrtb",    two(0xF000, 0x5845),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1656. {"fdsqrtd",    two(0xF000, 0x5445),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1657. {"fdsqrtl",    two(0xF000, 0x4045),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1658. {"fdsqrtp",    two(0xF000, 0x4C45),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1659. {"fdsqrts",    two(0xF000, 0x4445),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1660. {"fdsqrtw",    two(0xF000, 0x5045),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1661. {"fdsqrtx",    two(0xF000, 0x0045),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1662. {"fdsqrtx",    two(0xF000, 0x4845),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1663. {"fdsqrtx",    two(0xF000, 0x0045),    two(0xF1C0, 0xE07F),    "IiFt"},
  1664.  
  1665. {"fsmoveb",    two(0xF000, 0x5840),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1666. {"fsmoved",    two(0xF000, 0x5440),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1667. {"fsmovel",    two(0xF000, 0x4040),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1668. {"fsmovep",    two(0xF000, 0x4C40),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1669. {"fsmoves",    two(0xF000, 0x4440),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1670. {"fsmovew",    two(0xF000, 0x5040),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1671. {"fsmovex",    two(0xF000, 0x0040),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1672. {"fsmovex",    two(0xF000, 0x4840),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1673.  
  1674. {"fdmoveb",    two(0xF000, 0x5844),    two(0xF1C0, 0xFC7F),    "Ii;bF7"},
  1675. {"fdmoved",    two(0xF000, 0x5444),    two(0xF1C0, 0xFC7F),    "Ii;FF7"},
  1676. {"fdmovel",    two(0xF000, 0x4044),    two(0xF1C0, 0xFC7F),    "Ii;lF7"},
  1677. {"fdmovep",    two(0xF000, 0x4C44),    two(0xF1C0, 0xFC7F),    "Ii;pF7"},
  1678. {"fdmoves",    two(0xF000, 0x4444),    two(0xF1C0, 0xFC7F),    "Ii;fF7"},
  1679. {"fdmovew",    two(0xF000, 0x5044),    two(0xF1C0, 0xFC7F),    "Ii;wF7"},
  1680. {"fdmovex",    two(0xF000, 0x0044),    two(0xF1C0, 0xE07F),    "IiF8F7"},
  1681. {"fdmovex",    two(0xF000, 0x4844),    two(0xF1C0, 0xFC7F),    "Ii;xF7"},
  1682. #endif m68040
  1683.  
  1684. #ifdef m68851
  1685.  /* name */    /* opcode */        /* match */        /* args */
  1686.  
  1687. {"pbac",    one(0xf0c7),        one(0xffbf),        "Bc"},
  1688. {"pbacw",    one(0xf087),        one(0xffbf),        "Bc"},
  1689. {"pbas",    one(0xf0c6),        one(0xffbf),        "Bc"},
  1690. {"pbasw",    one(0xf086),        one(0xffbf),        "Bc"},
  1691. {"pbbc",    one(0xf0c1),        one(0xffbf),        "Bc"},
  1692. {"pbbcw",    one(0xf081),        one(0xffbf),        "Bc"},
  1693. {"pbbs",    one(0xf0c0),        one(0xffbf),        "Bc"},
  1694. {"pbbsw",    one(0xf080),        one(0xffbf),        "Bc"},
  1695. {"pbcc",    one(0xf0cf),        one(0xffbf),        "Bc"},
  1696. {"pbccw",    one(0xf08f),        one(0xffbf),        "Bc"},
  1697. {"pbcs",    one(0xf0ce),        one(0xffbf),        "Bc"},
  1698. {"pbcsw",    one(0xf08e),        one(0xffbf),        "Bc"},
  1699. {"pbgc",    one(0xf0cd),        one(0xffbf),        "Bc"},
  1700. {"pbgcw",    one(0xf08d),        one(0xffbf),        "Bc"},
  1701. {"pbgs",    one(0xf0cc),        one(0xffbf),        "Bc"},
  1702. {"pbgsw",    one(0xf08c),        one(0xffbf),        "Bc"},
  1703. {"pbic",    one(0xf0cb),        one(0xffbf),        "Bc"},
  1704. {"pbicw",    one(0xf08b),        one(0xffbf),        "Bc"},
  1705. {"pbis",    one(0xf0ca),        one(0xffbf),        "Bc"},
  1706. {"pbisw",    one(0xf08a),        one(0xffbf),        "Bc"},
  1707. {"pblc",    one(0xf0c3),        one(0xffbf),        "Bc"},
  1708. {"pblcw",    one(0xf083),        one(0xffbf),        "Bc"},
  1709. {"pbls",    one(0xf0c2),        one(0xffbf),        "Bc"},
  1710. {"pblsw",    one(0xf082),        one(0xffbf),        "Bc"},
  1711. {"pbsc",    one(0xf0c5),        one(0xffbf),        "Bc"},
  1712. {"pbscw",    one(0xf085),        one(0xffbf),        "Bc"},
  1713. {"pbss",    one(0xf0c4),        one(0xffbf),        "Bc"},
  1714. {"pbssw",    one(0xf084),        one(0xffbf),        "Bc"},
  1715. {"pbwc",    one(0xf0c9),        one(0xffbf),        "Bc"},
  1716. {"pbwcw",    one(0xf089),        one(0xffbf),        "Bc"},
  1717. {"pbws",    one(0xf0c8),        one(0xffbf),        "Bc"},
  1718. {"pbwsw",    one(0xf088),        one(0xffbf),        "Bc"},
  1719.  
  1720.  
  1721. {"pdbac",    two(0xf048, 0x0007),    two(0xfff8, 0xffff),    "DsBw"},
  1722. {"pdbas",    two(0xf048, 0x0006),    two(0xfff8, 0xffff),    "DsBw"},
  1723. {"pdbbc",    two(0xf048, 0x0001),    two(0xfff8, 0xffff),    "DsBw"},
  1724. {"pdbbs",    two(0xf048, 0x0000),    two(0xfff8, 0xffff),    "DsBw"},
  1725. {"pdbcc",    two(0xf048, 0x000f),    two(0xfff8, 0xffff),    "DsBw"},
  1726. {"pdbcs",    two(0xf048, 0x000e),    two(0xfff8, 0xffff),    "DsBw"},
  1727. {"pdbgc",    two(0xf048, 0x000d),    two(0xfff8, 0xffff),    "DsBw"},
  1728. {"pdbgs",    two(0xf048, 0x000c),    two(0xfff8, 0xffff),    "DsBw"},
  1729. {"pdbic",    two(0xf048, 0x000b),    two(0xfff8, 0xffff),    "DsBw"},
  1730. {"pdbis",    two(0xf048, 0x000a),    two(0xfff8, 0xffff),    "DsBw"},
  1731. {"pdblc",    two(0xf048, 0x0003),    two(0xfff8, 0xffff),    "DsBw"},
  1732. {"pdbls",    two(0xf048, 0x0002),    two(0xfff8, 0xffff),    "DsBw"},
  1733. {"pdbsc",    two(0xf048, 0x0005),    two(0xfff8, 0xffff),    "DsBw"},
  1734. {"pdbss",    two(0xf048, 0x0004),    two(0xfff8, 0xffff),    "DsBw"},
  1735. {"pdbwc",    two(0xf048, 0x0009),    two(0xfff8, 0xffff),    "DsBw"},
  1736. {"pdbws",    two(0xf048, 0x0008),    two(0xfff8, 0xffff),    "DsBw"},
  1737.  
  1738. {"pflusha",    two(0xf000, 0x2400),    two(0xffff, 0xffff),    "" },
  1739.  
  1740. {"pflush",    two(0xf000, 0x3010),    two(0xffc0, 0xfe10),    "T3T9" },
  1741. {"pflush",    two(0xf000, 0x3810),    two(0xffc0, 0xfe10),    "T3T9&s" },
  1742. {"pflush",    two(0xf000, 0x3008),    two(0xffc0, 0xfe18),    "D3T9" },
  1743. {"pflush",    two(0xf000, 0x3808),    two(0xffc0, 0xfe18),    "D3T9&s" },
  1744. {"pflush",    two(0xf000, 0x3000),    two(0xffc0, 0xfe1e),    "f3T9" },
  1745. {"pflush",    two(0xf000, 0x3800),    two(0xffc0, 0xfe1e),    "f3T9&s" },
  1746.  
  1747. {"pflushs",    two(0xf000, 0x3410),    two(0xfff8, 0xfe10),    "T3T9" },
  1748. {"pflushs",    two(0xf000, 0x3c10),    two(0xfff8, 0xfe00),    "T3T9&s" },
  1749. {"pflushs",    two(0xf000, 0x3408),    two(0xfff8, 0xfe18),    "D3T9" },
  1750. {"pflushs",    two(0xf000, 0x3c08),    two(0xfff8, 0xfe18),    "D3T9&s" },
  1751. {"pflushs",    two(0xf000, 0x3400),    two(0xfff8, 0xfe1e),    "f3T9" },
  1752. {"pflushs",    two(0xf000, 0x3c00),    two(0xfff8, 0xfe1e),    "f3T9&s"},
  1753.  
  1754. {"pflushr",    two(0xf000, 0xa000),    two(0xffc0, 0xffff),    "|s" },
  1755.  
  1756. {"ploadr",    two(0xf000, 0x2210),    two(0xffc0, 0xfff0),    "T3&s" },
  1757. {"ploadr",    two(0xf000, 0x2208),    two(0xffc0, 0xfff8),    "D3&s" },
  1758. {"ploadr",    two(0xf000, 0x2200),    two(0xffc0, 0xfffe),    "f3&s" },
  1759. {"ploadw",    two(0xf000, 0x2010),    two(0xffc0, 0xfff0),    "T3&s" },
  1760. {"ploadw",    two(0xf000, 0x2008),    two(0xffc0, 0xfff8),    "D3&s" },
  1761. {"ploadw",    two(0xf000, 0x2000),    two(0xffc0, 0xfffe),    "f3&s" },
  1762.  
  1763. /* TC, CRP, DRP, SRP, CAL, VAL, SCC, AC */
  1764. {"pmove",    two(0xf000, 0x4000),    two(0xffc0, 0xe3ff),    "*sP8" },
  1765. {"pmove",    two(0xf000, 0x4200),    two(0xffc0, 0xe3ff),    "P8%s" },
  1766. {"pmove",    two(0xf000, 0x4000),    two(0xffc0, 0xe3ff),    "|sW8" },
  1767. {"pmove",    two(0xf000, 0x4200),    two(0xffc0, 0xe3ff),    "W8~s" },
  1768.  
  1769. /* BADx, BACx */
  1770. {"pmove",    two(0xf000, 0x6200),    two(0xffc0, 0xe3e3),    "*sX3" },
  1771. {"pmove",    two(0xf000, 0x6000),    two(0xffc0, 0xe3e3),    "X3%s" },
  1772.  
  1773. /* PSR, PCSR */
  1774. /* {"pmove",    two(0xf000, 0x6100),    two(oxffc0, oxffff),    "*sZ8" }, */
  1775. {"pmove",    two(0xf000, 0x6000),    two(0xffc0, 0xffff),    "*sY8" },
  1776. {"pmove",    two(0xf000, 0x6200),    two(0xffc0, 0xffff),    "Y8%s" },
  1777. {"pmove",    two(0xf000, 0x6600),    two(0xffc0, 0xffff),    "Z8%s" },
  1778.  
  1779. {"prestore",    one(0xf140),        one(0xffc0),        "&s"},
  1780. {"prestore",    one(0xf158),        one(0xfff8),        "+s"},
  1781. {"psave",    one(0xf100),        one(0xffc0),        "&s"},
  1782. {"psave",    one(0xf100),        one(0xffc0),        "+s"},
  1783.  
  1784. {"psac",    two(0xf040, 0x0007),    two(0xffc0, 0xffff),    "@s"},
  1785. {"psas",    two(0xf040, 0x0006),    two(0xffc0, 0xffff),    "@s"},
  1786. {"psbc",    two(0xf040, 0x0001),    two(0xffc0, 0xffff),    "@s"},
  1787. {"psbs",    two(0xf040, 0x0000),    two(0xffc0, 0xffff),    "@s"},
  1788. {"pscc",    two(0xf040, 0x000f),    two(0xffc0, 0xffff),    "@s"},
  1789. {"pscs",    two(0xf040, 0x000e),    two(0xffc0, 0xffff),    "@s"},
  1790. {"psgc",    two(0xf040, 0x000d),    two(0xffc0, 0xffff),    "@s"},
  1791. {"psgs",    two(0xf040, 0x000c),    two(0xffc0, 0xffff),    "@s"},
  1792. {"psic",    two(0xf040, 0x000b),    two(0xffc0, 0xffff),    "@s"},
  1793. {"psis",    two(0xf040, 0x000a),    two(0xffc0, 0xffff),    "@s"},
  1794. {"pslc",    two(0xf040, 0x0003),    two(0xffc0, 0xffff),    "@s"},
  1795. {"psls",    two(0xf040, 0x0002),    two(0xffc0, 0xffff),    "@s"},
  1796. {"pssc",    two(0xf040, 0x0005),    two(0xffc0, 0xffff),    "@s"},
  1797. {"psss",    two(0xf040, 0x0004),    two(0xffc0, 0xffff),    "@s"},
  1798. {"pswc",    two(0xf040, 0x0009),    two(0xffc0, 0xffff),    "@s"},
  1799. {"psws",    two(0xf040, 0x0008),    two(0xffc0, 0xffff),    "@s"},
  1800.  
  1801. {"ptestr",    two(0xf000, 0x8210),    two(0xffc0, 0xe3f0),    "T3&sQ8" },
  1802. {"ptestr",    two(0xf000, 0x8310),    two(0xffc0, 0xe310),    "T3&sQ8A9" },
  1803. {"ptestr",    two(0xf000, 0x8208),    two(0xffc0, 0xe3f8),    "D3&sQ8" },
  1804. {"ptestr",    two(0xf000, 0x8308),    two(0xffc0, 0xe318),    "D3&sQ8A9" },
  1805. {"ptestr",    two(0xf000, 0x8200),    two(0xffc0, 0xe3fe),    "f3&sQ8" },
  1806. {"ptestr",    two(0xf000, 0x8300),    two(0xffc0, 0xe31e),    "f3&sQ8A9" },
  1807.  
  1808. {"ptestw",    two(0xf000, 0x8010),    two(0xffc0, 0xe3f0),    "T3&sQ8" },
  1809. {"ptestw",    two(0xf000, 0x8110),    two(0xffc0, 0xe310),    "T3&sQ8A9" },
  1810. {"ptestw",    two(0xf000, 0x8008),    two(0xffc0, 0xe3f8),    "D3&sQ8" },
  1811. {"ptestw",    two(0xf000, 0x8108),    two(0xffc0, 0xe318),    "D3&sQ8A9" },
  1812. {"ptestw",    two(0xf000, 0x8000),    two(0xffc0, 0xe3fe),    "f3&sQ8" },
  1813. {"ptestw",    two(0xf000, 0x8100),    two(0xffc0, 0xe31e),    "f3&sQ8A9" },
  1814.  
  1815. {"ptrapacw",    two(0xf07a, 0x0007),    two(0xffff, 0xffff),    "#w"},
  1816. {"ptrapacl",    two(0xf07b, 0x0007),    two(0xffff, 0xffff),    "#l"},
  1817. {"ptrapac",    two(0xf07c, 0x0007),    two(0xffff, 0xffff),    ""},
  1818.  
  1819. {"ptrapasw",    two(0xf07a, 0x0006),    two(0xffff, 0xffff),    "#w"},
  1820. {"ptrapasl",    two(0xf07b, 0x0006),    two(0xffff, 0xffff),    "#l"},
  1821. {"ptrapas",    two(0xf07c, 0x0006),    two(0xffff, 0xffff),    ""},
  1822.  
  1823. {"ptrapbcw",    two(0xf07a, 0x0001),    two(0xffff, 0xffff),    "#w"},
  1824. {"ptrapbcl",    two(0xf07b, 0x0001),    two(0xffff, 0xffff),    "#l"},
  1825. {"ptrapbc",    two(0xf07c, 0x0001),    two(0xffff, 0xffff),    ""},
  1826.  
  1827. {"ptrapbsw",    two(0xf07a, 0x0000),    two(0xffff, 0xffff),    "#w"},
  1828. {"ptrapbsl",    two(0xf07b, 0x0000),    two(0xffff, 0xffff),    "#l"},
  1829. {"ptrapbs",    two(0xf07c, 0x0000),    two(0xffff, 0xffff),    ""},
  1830.  
  1831. {"ptrapccw",    two(0xf07a, 0x000f),    two(0xffff, 0xffff),    "#w"},
  1832. {"ptrapccl",    two(0xf07b, 0x000f),    two(0xffff, 0xffff),    "#l"},
  1833. {"ptrapcc",    two(0xf07c, 0x000f),    two(0xffff, 0xffff),    ""},
  1834.  
  1835. {"ptrapcsw",    two(0xf07a, 0x000e),    two(0xffff, 0xffff),    "#w"},
  1836. {"ptrapcsl",    two(0xf07b, 0x000e),    two(0xffff, 0xffff),    "#l"},
  1837. {"ptrapcs",    two(0xf07c, 0x000e),    two(0xffff, 0xffff),    ""},
  1838.  
  1839. {"ptrapgcw",    two(0xf07a, 0x000d),    two(0xffff, 0xffff),    "#w"},
  1840. {"ptrapgcl",    two(0xf07b, 0x000d),    two(0xffff, 0xffff),    "#l"},
  1841. {"ptrapgc",    two(0xf07c, 0x000d),    two(0xffff, 0xffff),    ""},
  1842.  
  1843. {"ptrapgsw",    two(0xf07a, 0x000c),    two(0xffff, 0xffff),    "#w"},
  1844. {"ptrapgsl",    two(0xf07b, 0x000c),    two(0xffff, 0xffff),    "#l"},
  1845. {"ptrapgs",    two(0xf07c, 0x000c),    two(0xffff, 0xffff),    ""},
  1846.  
  1847. {"ptrapicw",    two(0xf07a, 0x000b),    two(0xffff, 0xffff),    "#w"},
  1848. {"ptrapicl",    two(0xf07b, 0x000b),    two(0xffff, 0xffff),    "#l"},
  1849. {"ptrapic",    two(0xf07c, 0x000b),    two(0xffff, 0xffff),    ""},
  1850.  
  1851. {"ptrapisw",    two(0xf07a, 0x000a),    two(0xffff, 0xffff),    "#w"},
  1852. {"ptrapisl",    two(0xf07b, 0x000a),    two(0xffff, 0xffff),    "#l"},
  1853. {"ptrapis",    two(0xf07c, 0x000a),    two(0xffff, 0xffff),    ""},
  1854.  
  1855. {"ptraplcw",    two(0xf07a, 0x0003),    two(0xffff, 0xffff),    "#w"},
  1856. {"ptraplcl",    two(0xf07b, 0x0003),    two(0xffff, 0xffff),    "#l"},
  1857. {"ptraplc",    two(0xf07c, 0x0003),    two(0xffff, 0xffff),    ""},
  1858.  
  1859. {"ptraplsw",    two(0xf07a, 0x0002),    two(0xffff, 0xffff),    "#w"},
  1860. {"ptraplsl",    two(0xf07b, 0x0002),    two(0xffff, 0xffff),    "#l"},
  1861. {"ptrapls",    two(0xf07c, 0x0002),    two(0xffff, 0xffff),    ""},
  1862.  
  1863. {"ptrapscw",    two(0xf07a, 0x0005),    two(0xffff, 0xffff),    "#w"},
  1864. {"ptrapscl",    two(0xf07b, 0x0005),    two(0xffff, 0xffff),    "#l"},
  1865. {"ptrapsc",    two(0xf07c, 0x0005),    two(0xffff, 0xffff),    ""},
  1866.  
  1867. {"ptrapssw",    two(0xf07a, 0x0004),    two(0xffff, 0xffff),    "#w"},
  1868. {"ptrapssl",    two(0xf07b, 0x0004),    two(0xffff, 0xffff),    "#l"},
  1869. {"ptrapss",    two(0xf07c, 0x0004),    two(0xffff, 0xffff),    ""},
  1870.  
  1871. {"ptrapwcw",    two(0xf07a, 0x0009),    two(0xffff, 0xffff),    "#w"},
  1872. {"ptrapwcl",    two(0xf07b, 0x0009),    two(0xffff, 0xffff),    "#l"},
  1873. {"ptrapwc",    two(0xf07c, 0x0009),    two(0xffff, 0xffff),    ""},
  1874.  
  1875. {"ptrapwsw",    two(0xf07a, 0x0008),    two(0xffff, 0xffff),    "#w"},
  1876. {"ptrapwsl",    two(0xf07b, 0x0008),    two(0xffff, 0xffff),    "#l"},
  1877. {"ptrapws",    two(0xf07c, 0x0008),    two(0xffff, 0xffff),    ""},
  1878.  
  1879. {"pvalid",    two(0xf000, 0x2800),    two(0xffc0, 0xffff),    "Vs&s"},
  1880. {"pvalid",    two(0xf000, 0x2c00),    two(0xffc0, 0xfff8),    "A3&s" },
  1881.  
  1882. #endif /* m68851 */
  1883.  
  1884. };
  1885.  
  1886. int numopcodes=sizeof(m68k_opcodes)/sizeof(m68k_opcodes[0]);
  1887.  
  1888. struct m68k_opcode *endop = m68k_opcodes+sizeof(m68k_opcodes)/sizeof(m68k_opcodes[0]);
  1889.  
  1890. #ifdef m68040
  1891. char *indirect_fp_opcodes[] =
  1892. {
  1893.     "facos",   "fasin",   "fatanh",  "fatan",    "fcosh",
  1894.     "fcos",    "fetoxm1", "fetox",   "fgetexp",  "fgetman", 
  1895.     "fintrz",  "fint",    "flog10",  "flog2",    "flognp1",
  1896.     "flogn",   "fmod",    "fmovecr", "frem",     "fscale",
  1897.     "fsgldiv", "fsglmul", "fsincos", "fsinh",    "fsin",
  1898.     "ftanh",   "ftan",    "ftentox", "ftwotox",
  1899. };
  1900.  
  1901. char **endfpinst = indirect_fp_opcodes+sizeof(indirect_fp_opcodes)/sizeof(indirect_fp_opcodes[0]);
  1902. #endif m68040
  1903.